下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、LinuxC一些函数所属的头文件在编写程序时,有时总是不记得所使用的函数在哪个库函数中。现在先把自己以前经常用到的函数头文件总结一下。有不对的地方还请指教。1,系统调用文件的操作函数#inlcludeintopen(char*name,inthow)第二个参数,O_RDONLYO_WRONLYO_RDWRO_CREAT#includeintclose(intfd)size_tread(intfd,void*buf,size_tcount)size_twrite(intfd,constvoid*buf,size_tcount)sleep(1)系统睡眠一秒钟,最小单位为一秒。#definemsle
2、ep(x)usleep(x*1000)msleep(500);系统睡眠0.5秒#includeperror(会出现错误的函数名)#includechar*strerror(interrnum)依据错误代码errnum来查找错误原因字符串char*strcpy(char*dest,constchar*src)intstrcmp(char*s1,constchar*s2)s1若等于s2的值则返回0值intstrncmp(char*s1,constchar*s2,intn)前n个字符串比较2,进程控制函数#includepid_tfork(void)子进程中返回0父进程中返回子进程ID出错返回-1p
3、id_tgetpid(void)pid_tgetppid(void)pid_tvfork(void)exec函数族进程pid的类型为pid_t类型,它包含于#includevsys/types.h若定义一个进程pid变量,则需要包含此头文件exit(n)结束进程父进程可以由wait函数来获得子进程结束装状态。在进程结束的时候,会关闭文件描述符号,做一些清理工作,只保留进程返回状态等信息调用exit(),子进程会关闭所有打开的进程描述符exit会作清理工作,比如说,释放内存(在C+里面会主动的调用析构函数,),关闭文件句柄的工作,包括刷新IO流。_exit(n)直接退出,不会做一些清理工作,也不
4、会关闭文件描述符。#includepid_twait(int*status)等待任意子进程结束。子进程结束状态值由status返回。如WEXITSTATUS(status)可以获得exit(2)中返回的值,status=2,这样就可以知道所等待的为哪个进程。如果不用这个宏转换,则status=512.pid_twaitpid(pid_tpid,intstatus,intoptions)可以指定等待某个进程号pid的进程结束在使用waitpid函数时还用到了pid参数,所以还要加上#includevsys/types.h关于进程等待函数还有很多宏将status转换为需要的值,需要了解。3,进程间
5、通信-管道#includeintpipe(intfiledes2)4,进程间通信-命名管道#include#includeintmkfifo(constchar*pathname,mode_tmode)对于命名管道的操作同普通文件的操作5,消息队列数据类型key_t是在头文件sys/types.h中定义的,它是一个长整形的数据。key=ftok(.,A)#include#include所属头文件:#includevsys/types.h#include#includevsys/msg.hintmsgid;msgid=msgget(key,IPC_CREAT|IPC_EXCL|0666);str
6、uctmsglongmtype;charmtext50;msg1,msg2;/消息队列缓冲区intrcvtype=1;msgsnd(msgid,&msg1,6,0)6个字节,最后一个参数填写为0表示函数调用阻塞直到满足条件为止。msgrcv(msgid,&msg2,6,rcvtype,0)最后一个参数也可为IPC_NOWAIT,没有收到消息返回-1msgctl(msgid,IPC_RMID,NULL);删除消息队列6,进程间通信-信号#includeintkill(pid_tpid,intsig)intraise(intsigno);进程向自身发送信号raise(signo)等价于kill(g
7、etpid(),signo);alarm(2)定时两秒后,产生SIGALRM信号,系统默认处理是结束进程。intpause(void)/pause函数使调用进程挂起直至捕捉到一个信号。signal(SIGINT,ctrl_c)ctrl_c为函数名功能:发出信号后,调用信号处理函数7,信号集函数组阻塞信号信号集数据结构的定义,sigset_t为结构体数据类型sigset_tintmask;sigemptyset(&intmask);sigaddset(&intmask,SIGINT);sigdelset(&intmask,SIGINT);sigprocmask(inthow,constsigse
8、t_t*set,sigset_t*oset)sigpromask(SIGBLOCK,&intmask,NULL)8,线程#include线程ID类型为pthread_t为结构体类型获得线程ID的办法pthread_ttid;tid=pthread_self();pthread_create(&tid,NULL,thread,NULL)第二个参数为线程属性,第三个参数为线程。第四个参数是可以向该线程传递参数。线程void*thread(void*arg)pthread_exit(void*)2)/与return(void*)2)的区别?谁可以解答。void*tret;pthread_join(t
9、id,&tret);pthread_cancel(tid);pthread_cleanup_push(fun,NULL);第一个参数为清理函数,第二个为传参,线程清理处理程序pthread_cleanup_pop(0);0表示线程结束时不执行清理函数,非0执行,两函数配对使用。调用pthread_exit时,或响应取消时,即使是pthread_cleanup_pop(0);也执行清理函数。互斥锁互斥锁类型为pthread_mutex_tmutex1pthread_mutex_init(&mutex1,NULL)互斥锁的创建,第二个参数为空,表示默认属性。pthread_mutex_destory(&mutex1)清除一个互斥锁pthread_mutex_lock(&mutex1)pthread_mutex_unlock(&mutex1)信号量#include信号量的类型sem_tsem1;sem_init(&sem1,0,n)信号量的初始化,第二个参数Linux没能实现在进程间信号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗数据安全共享技术研究展望
- 胆囊结石课件
- 胃酸的分泌教学课件
- 2026届定西市重点中学数学高二上期末监测试题含解析
- 胃癌课件插图
- 2026届山东省邹平双语学校二区高一数学第一学期期末质量跟踪监视试题含解析
- 2026届江西省宜春市靖安中学数学高三上期末学业质量监测试题含解析
- 阿里市重点中学2026届高二上生物期末检测模拟试题含解析
- 医疗数据共享的激励机制创新:从单一到多元激励
- 医疗数据共享的区块链激励与价值医疗
- 一级建造师考试机电工程管理与实务试卷及答案(2025年)
- 2025年天津市直机关遴选公务员面试真题及解析
- 2026年潍坊护理职业学院单招职业倾向性考试必刷测试卷及答案1套
- 医保政策学习课件
- 2025浙江省自由贸易发展中心招聘工作人员5人(第二批)参考笔试试题及答案解析
- 老公情人签约协议书
- 4、蓝恒达QC小组活动基础知识与实务培训课件
- 小学六年级科学上册2025年期末检测卷(含答案)
- 现场清洁度培训课件
- 豪华转马应急预案
- 2025年信用报告征信报告详版个人版模板样板(可编辑)
评论
0/150
提交评论