Linux从入门到提高-第19章 Linux下的C编程_第1页
Linux从入门到提高-第19章 Linux下的C编程_第2页
Linux从入门到提高-第19章 Linux下的C编程_第3页
Linux从入门到提高-第19章 Linux下的C编程_第4页
Linux从入门到提高-第19章 Linux下的C编程_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第19章Linux下的C编程C语言概述基本应用文件操作进程操作本章小结本节将对C语言的基础知识进行介绍。它包括发展历史与特点、基本组成元素、语句、数组、指针、结构体以及函数等。19.1C语言概述C语言的特点主要包括:程序结构清晰、紧凑语言表达功能强大程序的可移植性好提供了预处理器,程序可以通过宏指令来提高程序 的可读性和可移植性程序的基本结构intmain(){

语句;}19.1.1发展历史与特点常量#define符号常量常量变量数据类型变量名;运算符 算术运算符:+、-、*、/、%、++、--

关系运算符:>、<、==、>=、<=、!=

逻辑运算符:&&、||、!

位操作符:&、|、^、~、<<、>>

条件运算符:运算量1?运算量2:运算量319.1.3基本组成元素表达式算术表达式:1+2*3赋值表达式:a=123条件表达式:a>b?a:b19.1.3基本组成元素表达式语句x=y+1;

i++; 选择语句if(表达式)

语句1;else

语句2;19.1.4语句选择语句switch(表达式){case常量1:

语句1或空;break;case常量2:

语句2或空;break;…case常量n:

语句n或空;break;default:

语句n+1或空;}19.1.4语句循环语句for(表达式1;表达式2;表达式3){

语句;}while(表达式){

语句;}19.1.4语句循环语句do{

语句;}while(表达式)跳转语句goto、break、continue复合语句和空语句 19.1.4语句数组的定义intarray[6];数组元素的引用array[0],array[1]数组的初始化intarray[6]={1,2,3,4,5,6};intarray[]={1,2,3,4,5,6};inta[6]={1,2,3,};

19.1.5数组指针的定义int*p;&运算符和*运算符intn; int*pn;pn=&n; *pn=2;void指针类型void*p;19.1.6指针结构体类型的定义structstudent{intid;charname[20];charsex;unsignedintage;charaddress[128];};

结构体变量的定义structstudenta;

19.1.7结构体结构体变量的定义structstudent{intid; charname[20]; charsex; unsignedintage; charaddress[128]; }a;19.1.7结构体结构体变量的初始化structstudenta={ 23, "LiLei",

'M', 28, "156JiansheRoad" };指向结构体的指针structstudent*p;

结构体变量成员的引用19.1.7结构体函数的定义与声明返回值类型符函数名(形式参数列表){

定义部分;

执行语句部分;}函数的调用与参数传递函数名(实际参数列表)19.1.8函数本节将不涉及系统底层的知识,介绍一些最基本和最常用的应用,包括字符串操作、数据转换、内存分配与释放等。19.2基本应用字符串初始化void*memset(void*buffer,intc,intcount);字符串复制char*strcpy(char*dest,char*src);字符串比较intstrcmp(constchar*s1,constchar*s2);

字符串查找char*strstr(constchar*haystack, constchar*needle);19.2.1字符串操作字母大小写转换inttoupper(intc);inttolower(intc);

字符串转换intatoi(constchar*nptr);

19.2.2数据转换内存分配void*alloca(unsignedsize);void*malloc(unsignedsize);void*calloc(size_tnmemb,size_tsize);内存释放voidfree(void*ptr);19.2.3内存分配与释放Linux文件系统的实现采用了分层的体系结构,包括用户接口层、文件系统本身、以及设备驱动程序等。这一节将对用户接口层的一些基本操作进行介绍,包括文件的创建/打开、关闭、以及读写等内容。19.3文件操作intopen(constchar*filename,intflags);intopen(constchar*filename,intflags,mode_tmode);O_RDONLY:以只读的方式打开文件O_WRONLY:以只写的方式打开文件O_RDWR:以读写的方式打开文件O_APPEND:以追加的方式打开文件O_CREAT:如果文件不存在,则创建新文件,并用mode设置其权限O_EXEC:如果使用了O_CREAT,但文件已经存在,返回错误信息O_NOBLOCK:以非阻塞的方式打开文件O_TRUNC:如果文件已经存在,则在写入数据之前先删除其原有数据19.3.1创建/打开文件ssize_tread(intfd,void*buffer,size_tcount);ssize_twrite(intfd,constvoid*buffer,size_tcount);关闭文件intclose(intfd);19.3.3读写文件在Linux等多用户、多任务的操作系统中,进程是应用程序在内存中的基本执行单元,同时也是系统资源分配的基本单位。Linux系统下几乎所有的用户管理、资源分配等操作都是通过相应进程的控制来实现的。因此,理解和掌握进程的相关知识对于应用程序的设计非常重要。这一节主要介绍一些进程相关的基本操作,包括进程的创建、进程的终止、进程信息的获取等。19.4进程操作进程(Process)是指操作系统中被加载到内存中的、正在运行的应用程序实例。它最初是随着批处理系统和分时系统的出现而引入的,因为在这些系统中,有多个并发执行的程序,仍然使用程序这个静态的概念已经无法描述系统中程序动态变化的过程了。进程主要由程序、数据以及进程控制块(PCB)3个部分组成。19.4.1进程的概念pid_tfork(void);pid_twait(int*status);pid_twaitpid(pid_tpid,int*status,intoptions);进程的终止void_exit(intstatus);voidexit(intstatus);19.4.2进程的创建pid_tgetpid(void);p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论