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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Unix环境高级编程》 阅读笔记之三 - 文件I/O相关的知识,希望对你有一定的参考价值。

 

 

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的主要内容,如果未能解决你的问题,请参考以下文章

《UNIX环境高级编程》读书笔记 —— 文件 I/O

UNIX环境高级编程笔记之高级I/O

《UNIX环境高级编程》笔记——3.文件IO

《UNIX环境高级编程》读书笔记之系统数据文件和信息

Unix环境高级编程文件I/O

unix环境高级编程——文件i/o