C程序设计语言(六)UNIX系统接口

系统接口和标准的C库,是不同的两个范畴。
标准C库,各个平台的C编译器都应该支持,具有跨平台的性质。
系统接口则是系统相关的,UNIX的系统接口,在Win上就肯定不能用。

那么两者是不是还有联系呢,其实是的。标准C库,跟系统相关的部分,不也是通过系统调用/系统接口实现的么。所以系统接口可以实现一部分的标准C库,系统接口为特定系统的程序开发提供了服务,这部分服务一般是不能跨平台的。

这是我对这个主题的理解。

文件描述符

  • UNIX系统,或者linux这种UNIX like系统,所有的外围设备,都看做是文件系统的文件
  • 所有的 输入/输出 都要通过读文件和写文件完成
  • 正常打开文件后,操作系统会向程序返回一个小的非负整数,称为文件描述符 file descriptor
  • 之后的文件访问,都通过文件描述符完成,而不是文件名
  • stdin, stdout, stderr的文件描述符分别是0, 1, 2
    • 下文的文件描述符简写为 fd 吧
    • shell 会对不同的文件赋予 fd 0和1,以便完成重定向和管道
    • 程序本身并不需要关心 fd 0, 1现在被赋予了谁
    • fd 2一般还是保留到显示器上

低级I/O read 和 write

  • read 和 write 是系统调用
  • 所谓系统调用是UNIX提供给用户程序来调用的函数,以此提供操作系统的服务
  • C语言程序通过read和write函数,使用I/O的系统调用
    • 3个参数
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值