Linux系统函数调用进程操作篇.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:20 大小:129KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Linux系统函数调用进程操作篇.pdf

Linux系统函数调用进程操作篇.pdf

预览

免费试读已结束,剩余 10 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

UntitledDocument页码,1/20atexit(设置程序正常结束前调用的函数)相关函数_exit,exit,on_exit表头文件#include<stdlib.h>定义函数intatexit(void(*function)(void));函数说明atexit()用来设置一个程序正常结束前调用的函数。当程序通过调用exit()或从main中返回时,参数function所指定的函数会先被调用,然后才真正由exit()结束程序。返回值如果执行成功则返回0,否则返回-1,失败原因存于errno中。范例#include<stdlib.h>voidmy_exit(void){printf(“beforeexit()!\n”);}main(){atexit(my_exit);exit(0);}执行beforeexit()!execl(执行文件)相关函数fork,execle,execlp,execv,execve,execvp表头文件#include<unistd.h>定义函数intexecl(constchar*path,constchar*arg,....);函数说明execl()用来执行参数path字符串所代表的文件路径,接下来的参数代表执行该文件时传递过去的argv(0)、argv[1]……,最后一个参数必须用空指针(NULL)作结束。返回值如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno中。范例#include<unistd.h>main(){execl(“/bin/ls”,”ls”,”-al”,”/etc/passwd”,(char*)0);}执行/*执行/bin/ls-al/etc/passwd*/file://D:\linux_c\function\11.html2004-1-9UntitledDocument页码,2/20-rw-r--r--1rootroot705Sep313:52/etc/passwdexeclp(从PATH环境变量中查找文件并执行)相关函数fork,execl,execle,execv,execve,execvp表头文件#include<unistd.h>定义函数intexeclp(constchar*file,constchar*arg,……);函数说明execlp()会从PATH环境变量所指的目录中查找符合参数file的文件名,找到后便执行该文件,然后将第二个以后的参数当做该文件的argv[0]、argv[1]……,最后一个参数必须用空指针(NULL)作结束。返回值如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno中。错误代码参考execve()。范例/*执行ls-al/etc/passwdexeclp()会依PATH变量中的/bin找到/bin/ls*/#include<unistd.h>main(){execlp(“ls”,”ls”,”-al”,”/etc/passwd”,(char*)0);}执行-rw-r--r--1rootroot705Sep313:52/etc/passwdexecv(执行文件)相关函数fork,execl,execle,execlp,execve,execvp表头文件#include<unistd.h>定义函数intexecv(constchar*path,char*constargv[]);函数说明execv()用来执行参数path字符串所代表的文件路径,与execl()不同的地方在于execve()只需两个参数,第二个参数利用数组指针来传递给执行文件。返回值如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno中。错误代码请参考execve()。范例/*执行/bin/ls-al/etc/passwd*/#include<unistd.h>main(){char*argv[]={“ls”,”-al”,”/etc/passwd”,(char*)}};file://D:\linux_c\function\11.html2004-1-9UntitledDocument页码,3/20execv(“/bin/ls”,argv);}执行-rw-r--r--1rootroot705Sep313:52/etc/passwdexecve(执行文件)相关函数fork,execl,execle,execlp,execv,execvp表头文件#include<unistd.h>定义函数int