电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

第四章 系统调用VIP免费

第四章 系统调用_第1页
1/36
第四章 系统调用_第2页
2/36
第四章 系统调用_第3页
3/36
第四章系统调用第四章系统调用授课教师:付勇智授课教师:付勇智fuyongzhi@swfc.edu.cnfuyongzhi@swfc.edu.cn西南林学院基础部数理教研西南林学院基础部数理教研室室在在CC语言程序中,如何语言程序中,如何运行另外一个程序?运行另外一个程序?中止其他程序运行?中止其他程序运行?创建创建//删除文件?删除文件?读写文件内容?读写文件内容?读写一个目录?读写一个目录?与另外一个运行的程序通信?与另外一个运行的程序通信?得到系统时间?得到系统时间?系统调用接口位置系统调用接口位置用户程序编程工具二进制指令系统硬件系统调用接口编程工具包操作系统硬件硬件控制程序文件子系统I/O设备字符块设备设备驱动程序进程控制进程间通信进程调度内存管理MinixMinix系统调用系统调用(1)(1)进程管理MinixMinix系统调用系统调用(2)(2)信号传递MinixMinix系统调用系统调用(3)(3)文件读写操作MinixMinix系统调用系统调用(4)(4)目录与文件系统管理MinixMinix系统调用系统调用(5)(5)安全保护MinixMinix系统调用系统调用(6)(6)时间管理ShellShell程序中程序中forkfork调用创建进调用创建进程程示例示例..两进程分别输出’两进程分别输出’A’,’B’A’,’B’#include#include#include#includemain(){main(){inti;inti;pid_tpid;pid_tpid;if((pid=fork())<0)if((pid=fork())<0)return-1;return-1;elseelseif(pid==0)if(pid==0)for(i=1;i<11;i++){for(i=1;i<11;i++){printf("ChildProcessB,PID:%d\n",getpid());printf("ChildProcessB,PID:%d\n",getpid());sleep(i);sleep(i);}}elseelsefor(i=1;i<11;i++){for(i=1;i<11;i++){printf("ParentProcessA,PID:%d\n",getpid());printf("ParentProcessA,PID:%d\n",getpid());sleep(2*i);sleep(2*i);}}}}WindowsWindows中进程创建中进程创建intintsystem(system(constconstcharchar**commandcommand))运行命令行命令(程序)运行命令行命令(程序)commandcommandintint_spawnl(_spawnl(intintmodemode,,constconstcharchar**cmdnamecmdname,,constconstcharchar**arg0arg0,,constconstcharchar**arg1arg1,,......constconstcharchar**argnargn,,NULLNULL))以模式以模式modemode,创建进程并以新进程执行程,创建进程并以新进程执行程序序cmdnamecmdname,传入参数,传入参数arg0-argnarg0-argn_spawn_spawn调用的模式调用的模式_P_OVERLAY_P_OVERLAY子进程执行后,父进程中止子进程执行后,父进程中止_P_WAIT_P_WAIT父进程暂停,等待子进程运行完成后继续父进程暂停,等待子进程运行完成后继续_P_NOWAIT_P_NOWAIT父进程、子进程并行运行父进程、子进程并行运行_P_DETACH_P_DETACH父子进程并行运行,但子进程不能使用脱离父子进程并行运行,但子进程不能使用脱离对控制台键盘和显示输出的控制对控制台键盘和显示输出的控制子进程子进程childp.exechildp.exe#include#include#include#include#include#includevoidmain()voidmain(){{while(1)while(1){{printf("ThisisfromCHILDprocess!\n");printf("ThisisfromCHILDprocess!\n");Sleep(1000);Sleep(1000);}}}}父进程父进程pProcess.exepProcess.exe#include#include#include#include#include#includeintmain(intargc,char*argv[])intmain(intargc,char*argv[]){{if(argc!=2)if(argc!=2){{printf("RUNNINGFORMAT:pProcesschildprocess\n");printf("RUNNINGFORMAT:pProcesschildprocess\n");exit(-1);exit(-1);}}_spawnl(_P_NOWAIT,argv[1],argv[1],NULL);_spawnl(_P_NOWAIT,argv[1],argv[1],NULL);while(1)while(1){{printf("ThisisfromPARENTprocess!\n");printf("ThisisfromPARENTprocess!\n");Sleep(250);Sleep(250);}}return0;return0;}}Autorun.exeAutorun.exe实现实现#include#include#include#includeintmain(intargc,charargv[])intmain(in...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

第四章 系统调用

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部