Linux运维知识之Linux一个简单的读写文件
小标 2018-12-07 来源 : 阅读 1195 评论 0

摘要:本文主要向大家介绍了Linux运维知识之Linux一个简单的读写文件,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

本文主要向大家介绍了Linux运维知识之Linux一个简单的读写文件,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。


(1)linux中的文件描述符fd的合法范围是0或者一个正正数,不可能是一个负数。
(2)open返回的fd程序必须记录好,以后向这个文件的所有操作都要靠这个fd去对应这个文件,最后关闭文件时也需要fd去指定关闭这个文件。如果在我们关闭文件前fd丢掉了那就惨了,这个文件没法关闭了也没法读写了。
提醒:实时查man手册
(1)当我们写应用程序时,很多API原型都不可能记得,所以要实时查询,用man手册
(2)man 1 xx查linux shell命令,man 2 xxx查API, man 3 xxx查库函数
读取文件内容
(1)ssize_t read(int fd, void *buf, size_t count);
fd表示要读取哪个文件,fd一般由前面的open返回得到 buf是应用程序自己提供的一段内存缓冲区,用来存储读出的内容 ,count是我们要读取的字节数 返回值size_t类型是linux内核用typedef重定义的一个类型(其实就是int),返回值表示成功读取的字节数。
向文件中写入
(1)写入用write系统调用,write的原型和理解方法和read相似
 (2)注意buf的指针类型为void
(3)刚才先写入12字节,然后读出结果读出是0(但是读出成功了)。

 1 #include 
 2 #include 
 3 #include 
 4 #include 
 5 #include 
 6 #include 
 7 
 8 
 9 
10 int main(int argc, char *argv[])
11 {
12     int fd = -1;        // fd 就是file descriptor,文件描述符
13     char buf[100] = {0};
14     char writebuf[20] = "l love linux";
15     int ret = -1;
16     
17     // 第一步:打开文件
18     fd = open("a.txt", O_RDWR);//注意之前自己定义个a.txt
19     if (-1 == fd)        // 有时候也写成: (fd < 0)
20     {
21         printf("文件打开错误\n");
22     }
23     else
24     {
25         printf("文件打开成功,fd = %d.\n", fd);
26     }
27     
28     // 第二步:读写文件
29     // 写文件
30     ret = write(fd, writebuf, strlen(writebuf));
31     if (ret < 0)
32     {
33         printf("write失败.\n");
34     }
35     else
36     {
37         printf("write成功,写入了%d个字符\n", ret);
38     }
39 /*    
40     // 读文件
41     ret = read(fd, buf, 5);
42     if (ret < 0)
43     {
44         printf("read失败\n");
45     }
46     else
47     {
48         printf("实际读取了%d字节.\n", ret);
49         printf("文件内容是:[%s].\n", buf);
50     }
51 */    
52     // 第三步:关闭文件
53     close(fd);
54     
55     return 0;
56 }

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维Linux频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved