一、文件
1、文件编程概述2、文件打开及创建3、文件写入操作编程4、文件读取操作5、文件光标移动操作 二、往期文章
一、文件 1、文件编程概述Linux操作系统提供一系列的API
打开 open
写 读 write read
光标定位 lseek
关闭 close
参数说明
#include3、文件写入操作编程#include #include #include int main() { int fd;//文件描述符,为open()的返回值 fd = open("./file1",O_RDWR); if(fd == -1) { printf("open file1 failedn"); fd = open("./file1",O_RDWR|O_CREAT,0600);//如果没有文件file1,则创建一个file1 if(fd > 0) { printf("create file1 success!n"); } } return 0; }
ssize_t write(int fd, const void *buf, size_t count);
第一个参数是文件描述符
第二个参数是无类型指针
第三个参数是buf的长度
#include4、文件读取操作#include #include #include #include #include int main() { int fd;//文件描述符,为open()的返回值 char *buf = "I am ok!!!"; fd = open("./file1",O_RDWR); if(fd == -1) { printf("open file1 failedn"); fd = open("./file1",O_RDWR|O_CREAT,0600);//如果没有文件file1,则创建一个file1 if(fd > 0) { printf("create file1 success!n"); } } write(fd,buf,strlen(buf));//把buf中的内容写入file1 return 0; } ~
#include5、文件光标移动操作#include #include #include #include #include #include int main() { int fd;//文件描述符,为open()的返回值 char *buf = "I am ok!!!"; fd = open("./file1",O_RDWR); if(fd == -1) { printf("open file1 failedn"); fd = open("./file1",O_RDWR|O_CREAT,0600);//如果没有文件file1,则创建一个file1 if(fd > 0) { printf("create file1 success!n"); } } int n_write = write(fd,buf,strlen(buf)); if(n_write != -1) { printf("write %d byte to file1n",n_write); } close(fd);//关闭fd,然后重新打开文件,为了让光标重新回到开头 fd = open("./file1",O_RDWR); char *readBuf; readBuf = (char *)malloc(sizeof(char)*n_write+1);//开辟空间 int n_read = read(fd,readBuf,n_write); printf("read %d,context:%sn",n_read,readBuf);//打印出读取的内容 close(fd); return 0; }
off_t lseek(int fd, off_t offset, int whence);
第一个参数是文件描述符
第二个参数是将文件读写指针相对whence移动offset个字节
第三个参数是光标的位置,SEEK_SET是开头位置,SEEK_CUR是当前位置,SEEK_END是结尾位置
#include#include #include #include #include #include #include int main() { int fd;//文件描述符,为open()的返回值 char *buf = "I am ok!!!"; fd = open("./file1",O_RDWR); if(fd == -1) { printf("open file1 failedn"); fd = open("./file1",O_RDWR|O_CREAT,0600);//如果没有文件file1,则创建一个file1 if(fd > 0) { printf("create file1 success!n"); } } int n_write = write(fd,buf,strlen(buf)); if(n_write != -1) { printf("write %d byte to file1n",n_write); } lseek(fd,0,SEEK_SET);//替换上面两句,重新把光标放到开头 //或者用lseek(fd,-n_write,SEEK_CUR); char *readBuf; readBuf = (char *)malloc(sizeof(char)*n_write+1);//开辟空间 int n_read = read(fd,readBuf,n_write); printf("read %d,context:%sn",n_read,readBuf); close(fd); return 0; }
二、往期文章lseek(fd,0,SEEK_END);返回值可以用于计算文件大小
1、入门Linux系统编程–文件
2、入门Linux系统编程–进程
3、入门Linux系统编程–线程
4、入门Linux系统编程–进程间通信
5、入门Linux系统编程–网络编程



