Linux下C语言的文件操作

时间:2021-07-24 01:14:27

代码:

 1 #include <stdio.h>
2 #include <string.h>
3 #include <fcntl.h>
4 /*************基本的函数API********************
5 int open(const char *pathname, int oflag, int perms)
6 oflag:
7 O_RDONLY 只读
8 O_WRONLY 只写
9 O_RDWR 读写
10 O_APPEND 追加
11 O_CREAT 创建
12 O_EXCL 测试
13 O_TRUNC 删除
14 perms:
15 被打开的文件的存取权限,采用8进制
16 int close(int fd)
17 ssize_t read(int fd, void *buf, size_t count)
18 fd:
19 文件描述符
20 buf:
21 指定存储器读取数据的缓冲区
22 count:
23 指定读取数据的字节数
24 ssize_t write(int fd, void *buf, size_t count)
25 fd:
26 文件描述符
27 buf:
28 指定存储器读取数据的缓冲区
29 count:
30 指定读取数据的字节数
31 off_t lseek(int fd, off_t offset, int whence)
32 fd:
33 文件描述符
34 offset:
35 偏移量,每一读写操作需要移动的字节数,可向前、可向后
36 count:
37 当前位置的基点:
38 SEEK_SET(当前位置是文件的开头)
39 SEEK_CUR(当前位置为文件指针的位置,新位置为当前位置加上偏移量)
40 SEEK_END(当前位置问文件的尾部,新位置为文件大小加上偏移量的大小)
41 **********************************************/
42 int main(void)
43 {
44 int fd,len;
45 char *buf = "Hello World!\n",Out[30];
46 fd = open("a.txt", O_CREAT | O_TRUNC | O_RDWR, 0600);
47 printf("open file:a.txt fd = %d\n", fd);
48 len = strlen(buf);
49 int size = write(fd, buf, len);
50 close(fd);
51 //Begin to read the file
52 fd = open("a.txt", O_RDWR, 0600);
53 lseek(fd, 0, SEEK_SET); //Before to read the file,you should call the function to make the fd point to begin of files
54 size = read(fd, Out, 12);
55 printf("size = %d\nread from file:\n %s\n",size,Out);
56 close(fd);
57 return 0;
58 }

未完待续~