码迷,mamicode.com
首页 > 其他好文 > 详细

《Unix环境高级编程》 阅读笔记之三 - 文件I/O

时间:2016-12-02 03:19:41      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:参数   标准输入   目录   stdout   关闭   节点   err   阅读   images   

 

 

unix下错误大多数返回负整数或者错误码,0是错误码.

1.每个文件被打开时都会返回一个文件描述符

2.unix中标准输入 输出 错误码 文件描述符分别为 0 1 2,POSIX.1中被替换成常数 STDIN_FILENO,STDOUT_FILENO,STRERR_FILENO(在unistd.h文件中)

3.Open函数使用(不必记住,多写,多练,就记住了,不明白查手册,参数太多)

4.NAME_MAX=14,文件名如果超过这个值,会自动截短,不过BSD系统会报错(ENAMETOOLONG),不仅仅是文件目录的问题,调用函数时候也会出问题
5.create(pathname,mode)函数创建一个新文件,成功返回fd,失败-1,也可以用open创建,该函数是以只写方式创建一个文件.

6.close(int fd)函数关闭一个文件,不过在进程结束后会自动关闭,不过要有习惯的写上去,不然会出大问题(nonblock).

7.lseek函数 只修改偏移量,不进行I/O操作

技术分享

(每个进程都共享同一个V节点)

关于原子操作:

技术分享

说白了就是每次进行文件write操作之前把偏移量指向尾端......自动的,之前貌似要手动lseek

(Ps:原子操作不止这一种)

技术分享

 

关于dup和dup2:

技术分享

 

技术分享

 

技术分享

Fcntl 用于修改文件标志值

 

《Unix环境高级编程》 阅读笔记之三 - 文件I/O

标签:参数   标准输入   目录   stdout   关闭   节点   err   阅读   images   

原文地址:http://www.cnblogs.com/xiaozhu520/p/6120374.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!