Linux系统文件编程基本操作

  • Post author:
  • Post category:linux




open函数的定义和参数。

#include<sys/types.h>
#include<sys/stat.h>
#include<fchl.h>


int open (const char *pathname, int flags);
int open (const char *pathname, int flags,mode_t mode);

使用open函数需要引入的三个头文件。

#include<sys/types.h>
#include<sys/stat.h>
#include<fchtl.h>



一.函数 打开文件:open

int open (const char *pathname, int flags);
//pathname:指向文件的路径
//flags:文件的权限。

// O_PDONLY    只读打开。
// O_WRONLY    只写打开。
// O_RDWR      读写打开。
//上面这三个权限只能指定一个,下面的可以追加。
//O_CREAT  若文件不存在使用他来创建,需要说明mode权限。 
//O_EXCL    如果文件存在,则打开失败。O_A
//O_APPEND    接着尾巴继续写,不加的话会覆盖掉之前位置的东西
//O_TRUNC    把原本所有的内容给他干掉,长度截短0,重新写入


示例1

1.用读写的方式打开,file文件夹。

int fd; 
fd = open ("./file",O_RDWR);



创建文件2


使用creat函数

creat(const char* pathname, mode_t mode);
//mode 权限
// S_IRUSR可读,1
// S_IWUSR可写,2
// S_IXUSR可执行,4
// S_IRWXR可读、写、执行)7(也可以用数字代替,如0777)
//返回值:文件描述符,值为一个整数,发生错误时返回-1


示例


创建了一个名为陈哥陈哥的可读可写可执行文件。

int fd;
fd = creat("./chengechenge",IRWXR);



二.创建文件

int open (const char *pathname, int flags, mode_t mode); 
//mode:权限
//pathname:指向文件的路径
//flags:文件的权限。


示例2

创建一个名为file1的可读写文件。

int fd;
fd = open("./file1",O_RDWR|O_CREAT,0600);



三.写入文件 write

1.引入头文件

#include<unistd.h>

2.write的定义和参数。

size_t write (int fd,const void *buf,size_t count)
//fd:文件描述符
//buf:字符串,你要写进去的东西
//coun:大小/字节,可以用sizeof/strlen计算。


示例3

定义buf内容,使用strlen计算字符串长度。

char *buf = "chenge is hangsome boy";
write (fd,buf,strlen(buf));



四.关闭 文件close

close(int fd);
//fd:文件描述符


五.读取文件

read函数

ssize_t read(int fd, void *buf, size_t count);//读取成功返回字节数,读取失败返回-1

示例代码

char *readbuf;
readbuf = (char*)malloc(sizeof(char)*n_write);
int n_read = read (fd,readbuf,nweite);


六.移动光标

off_t lseek (int fd, off_t offset, int whence);
//offset 偏移值  对whence的偏移值
//whence 位置
//SEEK_SET 文件的开头
//SEEK_CUR 文件的当前位置
//SEEK_END 文件的末尾

示例1

让光标指向文件的开头。

lseek (fd,0,SEEK_SET);



版权声明:本文为m0_72442663原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。