您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > Linux从入门到提高-第19章--Linux下的C编程
第19章Linux下的C编程C语言概述基本应用文件操作进程操作本章小结本节将对C语言的基础知识进行介绍。它包括发展历史与特点、基本组成元素、语句、数组、指针、结构体以及函数等。19.1C语言概述C语言的特点主要包括:程序结构清晰、紧凑语言表达功能强大程序的可移植性好提供了预处理器,程序可以通过宏指令来提高程序的可读性和可移植性程序的基本结构intmain(){语句;}19.1.1发展历史与特点常量#define符号常量常量变量数据类型变量名;运算符算术运算符:+、-、*、/、%、++、--关系运算符:、、==、=、=、!=逻辑运算符:&&、||、!位操作符:&、|、^、~、、条件运算符:运算量1?运算量2:运算量319.1.3基本组成元素表达式算术表达式:1+2*3赋值表达式:a=123条件表达式:ab?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语句表达式1表达式2语句表达式30非0退出循环表达式语句0非0退出循环循环语句do{语句;}while(表达式)跳转语句goto、break、continue复合语句和空语句19.1.4语句表达式语句0非0退出循环数组的定义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);pid_tgetppid(void);pid_tgetpgid(pid_tpid);pid_tgetpgrp(void);intgetpriority(intwhich,intwho);19.4.3进程信息的获取19.5本章小结本章主要知识点:C语言基本知识点字符串操作、数据转换、内存分配与释放文件操作进程操作
本文标题:Linux从入门到提高-第19章--Linux下的C编程
链接地址:https://www.777doc.com/doc-7945046 .html