Linux编程的几个基本概念

系统调用

是指操作系统提供给用户程序调用的一组特殊接口,用户程序可以通过这组接口来获得系统内核提供的服务。在linux中,为了更好的保护内核空间,将程序的运行分为内核空间用户空间(即常说的内核态和用户态),他们在逻辑上是相互隔离的。

linux系统调用部分是非常精简的系统调用(约250个左右),它继承了UNIX系统调用中最基本和最有用的部分,这些系统调用按照功能逻辑大致课分为进程控制进程间通信文件系统控制系统控制存储管理网络管理socket控制用户管理等几类。

用户编程接口(API

系统调用并不是直接与程序员进行交互的,它仅仅是一个通过软中断机制向内核提交请求,以获得内核服务的接口。在实际使用中,通过用户编程接口--API,也就是常说的API函数。

linux中,API遵循了UNIX中留下的应用编程界面标准--POSIX.用于保证应用程序可以在源代码一级上的多种操作系统上的移植运行,这些系统调用接口主要是通过C(libc)实现的。

系统命令

系统命令相对于API更搞了一层,它实际上是一个可执行的程序,他的内部引用了用户编程接口(API)来实现相应的功能.

文件描述符

linux中,所有的设备和文件操作都使用文件描述符(file descriptor)来进行的 ,文件描述符是非负整数打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。

习惯上,标准输入(standard input)的文件描述符是 0,标准输出(standard output)是 1,标准错误(standard error)是 2。尽管这种习惯并非 Unix 内核的特性,但是因为一些 shell 和很多应用程序都使用这种习惯,因此,如果内核不遵循这种习惯的话,很多应用程序将不能使用。

    POSIX 定义了 STDIN_FILENOSTDOUT_FILENO  STDERR_FILENO 来代替 012。这三个符号常量的定义位于头文件 unistd.h。启动一个进程时,这3个文件就会被打开。

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(978) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值