read、write函数(八)

read、write函数(七)

read、write函数(八)

 

 read、write函数(八)

 

 代码:

 1 /*  
 2     #include <unistd.h>
 3     ssize_t read(int fd, void *buf, size_t count);
 4         参数:
 5             - fd:文件描述符,open得到的,通过这个文件描述符操作某个文件
 6             - buf:需要读取数据存放的地方,数组的地址(传出参数)
 7             - count:指定的数组的大小
 8         返回值:
 9             - 成功:
10                 >0: 返回实际的读取到的字节数
11                 =0:文件已经读取完了
12             - 失败:-1 ,并且设置errno
13 
14     #include <unistd.h>
15     ssize_t write(int fd, const void *buf, size_t count);
16         参数:
17             - fd:文件描述符,open得到的,通过这个文件描述符操作某个文件
18             - buf:要往磁盘写入的数据,数据
19             - count:要写的数据的实际的大小
20         返回值:
21             成功:实际写入的字节数
22             失败:返回-1,并设置errno
23 */
24 #include <unistd.h>
25 #include <stdio.h>
26 #include <sys/types.h>
27 #include <sys/stat.h>
28 #include <fcntl.h>
29 
30 int main() {
31 
32     // 1.通过open打开english.txt文件
33     int srcfd = open("english.txt", O_RDONLY);
34     if(srcfd == -1) {
35         perror("open");
36         return -1;
37     }
38 
39     // 2.创建一个新的文件(拷贝文件)
40     int destfd = open("cpy.txt", O_WRONLY | O_CREAT, 0664);
41     if(destfd == -1) {
42         perror("open");
43         return -1;
44     }
45 
46     // 3.频繁的读写操作
47     char buf[1024] = {0};
48     int len = 0;
49     while((len = read(srcfd, buf, sizeof(buf))) > 0) {
50         write(destfd, buf, len);
51     }
52 
53     // 4.关闭文件
54     close(destfd);
55     close(srcfd);
56 
57 
58     return 0;
59 }

 

上一篇:eclipse 中System.out快捷键设定


下一篇:MySQL的启示:Intel Optane P4800X评测(4)