文件操作函数中最重要的六个函数分别是
creat,注意没有e,
open,close,
read,write,
lseek,
这几个函数分别位于:
create,open,close位于fcntl头文件中
read,write,lseek位于unistd头文件中
另外还有两个重要的头文件分别为sys/types和sys/stat,分别为系统基本数据类型头文件和文件状态头文件
简单写了一个函数
/*文件操作*/
把一个文件中的后十个字符打印并且创建一个新文件将这些字符写入新文件中
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
void main(){
int filename;
int i;
char buffer[10];
if((filename = open("/home/yelbosh/desktop/aa.txt",O_RDONLY))<0){
printf("open failed!");
return;
}else{
lseek(filename,-10,SEEK_END);
read(filename,buffer,10);
close(filename);
for(i = 0;i < 10;i++){
printf("%c\n",buffer[i]);
}
}
int cfile;
if((cfile = creat("/home/yelbosh/desktop/tem.txt",664)) < 0)
printf("error");
write(cfile,buffer,10);
close(cfile);
}
结合实例探究下各个函数
cfile = creat("/home/yelbosh/desktop/tem.txt",664)
creat函数,
int creat(const char *pathname, mode_t mode);
返回值:成功返回0,失败返回-1
(filename = open("/home/yelbosh/desktop/aa.txt",O_RDONLY)
open函数:
int open(const char *pathname, int oflag, … /* mode_t mode */);
返回值:成功返回的失败返回-1
第三个参数是可选的,注意第二个参数的含义,是打开的方式,可取的值为:
O_RDONLY、O_WRONLY、O_RDWR,
O_APPEND 每次写时都追加到文件尾端
O_CREAT 若文件不存在则创建它
O_EXCL 如果同时指定O_CREAT,而文件已经存在, 则出错,可测试一个文件是否已经存在
O_TRUNC 如果文件存在,而且为只读或只写成功打开,则将其长度截短为0
close函数,参数为文件标识符,成功返回的失败返回-1
read(filename,buffer,10);
read函数:
ssize_t read(int filedes, void *buff, size_t nbytes);
参数分别是文件标识符,缓冲区指针,缓冲区大小,返回值为实际读取的字节数
write(cfile,buffer,10);
write函数
ssize_t write(int filedes, const void *buff, size_t nbytes)
参数同read