预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共20页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

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

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

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

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

UntitledDocument页码,1/20 atexit(设置程序正常结束前调用的函数) 相关函数_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-9 UntitledDocument页码,2/20 -rw-r--r--1rootroot705Sep313:52/etc/passwd execlp(从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/passwd execv(执行文件) 相关函数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-9 UntitledDocument页码,3/20 execv(“/bin/ls”,argv); } 执行-rw-r--r--1rootroot705Sep313:52/etc/passwd execve(执行文件) 相关函数fork,execl,execle,execlp,execv,execvp 表头文件#include<unistd.h> 定义函数int