Unix高级编程第二,三章

1 POSIX 可移植的操作系统接口。
2 限制 由于大量标准化的工作,若干可移植的方法确定幻数和实现定义的限制。
(1)编译时限制(2)运行时限制 这两类是必须限制。
 ISO C限制 ISO C限制是编译时限制。<limits.h>中定义了C标准限制。
POSIX限制 
3 基本系统数据类型
头文件<sys/types.h>中定义了某些与实现有关的数据类型。他们都是用typedef来定义的,绝大多数以_t结尾。
1 大多数文件I/O只用5个函数:open,read,write,lseek,close.
2 不带缓冲 每个read和write都只调用内核中的一个系统调用。不带缓冲的I/O不是ISO C 的组成部分,他们是POSIX.1和UNIX Specification的组成部分。
3.2文件描述符
1 一个非负整数,打开和创建一个文件时由系统产生,标志此文件,并可传给write和read引用。
其中0与进程的标准输入关联,1与标准输出关联,2与标准出错输出关联。并换成常量符号,在<unistd.h>中定义。其变化范围是0~OPEN_MAX.
3.3 open函数
对于open函数,当创建新的文件才用第三个参数。
pathname是文件的名字。
这三个常量必须选一个,其他可选常量在p60
3.4 creat函数
3.5close函数
当一个进程终止时,内核自动关闭它打开的文件,因此许多程序不显式用close关闭文件。
3.6lseek函数
用于设置偏移量度量从文件开始处计算的字节数,开始默认设为0.
对于某些设备偏移量可以是负值,所以检测是否失败,应该用-1.
3.7 read函数
3.8write函数
3.10 文件共享
每个进程都有一个文件表,但共用一个v节点。
3.11 原子操作
内核会对每次write时,将文件改到文件尾,已解决多个进程写的逻辑问题。
3.12 dup和dup2函数
都是用来复制现存的文件描述符。
3.13
sync函数只是将所有修改过的块缓冲区排入写队列。
3.14 fcntl函数
用于改变已打开文件的性质。
3.15 ioctl函数
3.16 /dev/fd 打开文件/dev/fd/n等效于复制描述符n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值