- 5
- 0
- 约4.6千字
- 约 24页
- 2016-09-14 发布于江苏
- 举报
1.5 编程基础 1.5.1 Linux系统的基本术语 1.内核 内核就是操作系统,包括文件系统、存储管理、CPU 调度以及I/O设备管理。一般内核直接同硬件打交道,但也可以通过另一个操作系统控制硬件。 2.进程 Linux操作系统是一个多任务操作系统,在其上设计的每一个程序,运行后都将成为一个独立的实体,称为进程。在UNIX中,产生一个新进程的途径是fork系统功能调用。进程的概念使得在同一时刻可以执行多个任务,一个程序也可以作为多个不同进程同时执行。进程由用户上下文、正文段、数据段、堆和内核上下文组成。 ● 用户上下文:包含了用户模式下进程可访问的空间。 ● 正文段:包含了真正可执行的指令。 ● 数据段:指程序数据。 ● 堆:指可用来动态分配系统进程的数据空间。 ● 内核上下文:只能由内核维护和访问。它包含内核,跟踪进程运行以及挂起和重新唤醒进程所需要的信息。 3.系统调用 UNIX/Linux系统提供了多个可直接使用的内核服务入口。进程可以通过这些入口获得内核的服务,称这些入口的使用为系统调用。标准的 UNIX/Linux C程序为每一个系统调用提供了一个接口,这样,对程序员来说,系统调用与普通的函数调用一样。 对于大多数函数调用来说,正确的系统功能调用返回大于等于0的值,出错调用返回-1。UNIX/Linux的C语言提供了一个整型的全局变量errno存放出错码。在errno.h头文件中保存了错误码值和错误名称。当系统调用出错时,通过errno查找出错类型,errno的值要在出错后才检查,因为成功通过的系统调用并不将它置为0值。 C系统调用和函数除了上述返回一个整型值表示调用成功与否外,还返回一个结构信息:如系统调用stat和fstate返回一个结构指针。 4.变元表 变元表是用来向执行的程序提供参数的,是一个指向字符串的指针数组。其长度可变,最大长度不应超过5120或10?240个字节。在C语言中变元表主要用argc,argv表示。 C语言的main函数格式为: main(int argc,char argv[]) { … } 其中,第一个变元argc指明有几个变元字符串,其值大于等于1,等于1是指这个程序的引用名。第二个变元argv是一个字符型的指针数组,它可以等价地定义为图1-18所示的结构。 argv的每一个指针指向一个变元字符串,argc指出argv的指针个数。main函数argc,argv 参数根据需要可有可无。 变元表存放在进程的数据空间中,进程可以使用这些参数。当一个程序被激活时,通常把这些参数放进初始堆栈。下面说明它们的使用,程序名为example。 main(int argc,char * argv[?]) { printf(argc:%d\n,argc); printf(argv:%s,argv[0]); } 运行结果: argc:1 argv:example 5.环境表 在程序运行时,同接收变元表一样,也接收环境变量表。环境变量是指向字符串的指针阵列,其长度可变。由于环境变量表中的某几个元素未知,因此这个指针阵列由一个空指针结尾。环境变量表可以作为程序的第三个参数来访问。 main(int argc,char * argv[?],char *envp[?]) { … } 下面的C程序给出所有环境字符的值。 main(int argc,char * argv[?],char *envp[?]) { int n; printf(environment parameters:\n); for (n=0;envp[n]!=(char *)0;n++) printf(%s\n,envp[n]); exit(0); } 运行结果: environment parameters: HOME=/usr1/xduser SHELL=/bin/csh TERM=att630 USER= xduser PATH=/usr1/ xduser/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin EXINIT=set optimize redraw shell=/bin/csh 提供了一个外部变量environ,也可以用来访问环境表。用environ实现上述程序功能。 main(int argc,char * argv
您可能关注的文档
- 图形学课件5.3.ppt
- 途图--手机地图功能简介.doc
- 土木材料习题集.ppt
- 团结奋进谋发展 凝智聚力谱新篇 为开创榆阳卫生事业新局面而努力奋斗.doc
- 腿部减肥的方法 腿部减肥的方法汇总.doc
- 拖管工艺精简版.doc
- 椭圆的标准方程(新人教A版).ppt
- 瓦斯继电器校验台招标文件模板.doc
- 弯扭构件无模多点成形技术简介.ppt
- 碗扣式钢管梁支撑系统计算500X900.doc
- 绿色化学实验在高中化学教学中的应用研究:实验安全与环保教育论文.docx
- 跨文化意识在高中英语阅读教学中的实践探索与反思论文.docx
- 小学科学实验探究式教学与学生科学素养评价论文.docx
- 高中化学绿色实验教学与实验教学评价改革研究论文.docx
- 高中语文整本书阅读教学中的教师角色定位与教学策略论文.docx
- 高中物理实验:新型钙钛矿太阳能电池的制备与性能评估论文.docx
- 小学语文:社区避难场所防灾减灾知识普及与教育策略论文.docx
- 高中政治议题式教学与多媒体技术融合的创新实践研究论文.docx
- 初中物理生活化实验在培养学生环保意识中的应用研究论文.docx
- 高中历史课堂中流行音乐作为历史事件背景的探讨论文.docx
原创力文档

文档评论(0)