exexlp函数:
- 原型 int exexlp(const char *file,const char *arg…)
- 返回值:只有失败才返回
功能:
创建一个子进程,使其执行ls -l程序
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
int main()
{
pid_t pid;
pid=fork();
if(pid==-1)
{
perror("fork error");
exit(1);
}
else if(pid>0)
{
sleep(i);
printf("parent\n");
}
else
{
execlp("ls","ls","-l","-a",NULL);
}
return 0;
}
输出:
exexl函数
-
加载一个进程,通过”路径+程序名“来加载
-
int execl(const char path,const charsrg,…)
-
可以加载自定义的程序
-
成功:无返回,失败:-1
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
int main()
{
pid_t pid;
pid=fork();
if(pid==-1)
{
perror("fork error");
exit(1);
}
else if(pid>0)
{
sleep(i);
printf("parent\n");
}
else
{
execl("/bin/ls","ls","-l","-a",NULL);
}
return 0;
}
输出:
功能:将当前系统中的进程信息,打印到文件中
#include<unistd.h>
#include<fcntl.h>
#include<stdio.h>
#include<stdlib.h>
int main()
{
int fd;
fd=open("ps.out",O_WRONLY|O_CREAT|O_TRUNC,0644);
if(fd<0)
{
perror("open ps.out error");
exit(1);
}
dup2(fd,STDOUT_FILENO);
execlp("ps","ps","ax",NULL);
close(fd);
return 0;
}