在Linux文件编程中,我们首先要创造文件,对文件进行读写操作。
open()函数:打开文件返回一个文件操作符;
其原形:int open(const char *pathname,int flags);
int open(const char *pathname,int flags,mode_t mode);
pathname:文件名。flag是怎么打开;(O_RDONLY只读打开,O_WRONLY只写打开,O_RDWR可读可写打开)
例如:int fd = open(“./file1”,O_RDWR);
打开成功,返回一个文件操作符这个数大于0,失败返回-1;
在使用open()时,我们还经常使用下面四个参数。
O_CREAT:就是说要打开文件不存在就创造它。
O_EXCL:与O_CREAT同时使用时,文件存在,则会打开文件失败!也就是说这个东西可以检查文件是否存在。
O_APPEND:这个参数是指每次写入文件都在末尾写入。当我们打开文件时,文件的光标在头头,一写入东西就把前面的给覆盖了。
O_TRUNC:这个东西就是说使用时打开文件会是里面内容全部消失。
在第三个参数使用时,与其中的光标定位很相似;
lseek()光标定位:返回值光标移动数目也就是偏移量。这个可以检测文件大小。
第一个参数是:fd也就是文件返回操作符
第二个参数是:偏移量也就是定位。+offset向后走,-offset向前走。
第三个参数是:定位。SEED_SET:初始位置。SEED_CUR:当前位置。SEED_END:末尾
实现测量文件大小:lseek(fd,0,SEED_END);
另外,当关闭文件再打开时,光标也会回到最初点。
write():写入文件,返回值是写入字节数。失败则返回-1;
第一个参数:fd 老样子
第二个对象:要把什么写入文件,一般定义个字符串。定义无类型指针字符串
一般定义 char *buf = “sadkashdakd”;
第三个对象是:写入多少字节;
一般使用 int write_byte = write(fd,buf,strlen(buf));
read()函数:读入文件。返回值读入字节,失败返回-1;
第一个参数:fd,和前面一样。
第二个参数:buf,要把读出的东东放入那。
一般定义 char *readbuf ;readbuf = (char *)malloc(sizeof(char)*n+1)n要写多少个字节,+1是给‘/0’位置。