linux下execl和execlp之间的区别

本文通过一个具体的C语言程序示例介绍了如何在Unix环境下利用fork()创建子进程,并通过execlp()函数执行从标准输入读取的命令。示例程序展示了父进程与子进程间的交互过程,包括子进程执行外部命令及父进程等待子进程结束的状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引用unix环境高级编程中的例子


#inclulde <stdio.h>

#include <sys/types.h>

#include <sys/wait.h>

#include <string.h>

#include <unistd.h>


int main(int arg, char * arg[])

{

char but[1024];

pid_t pid;

int status;

int len;

len = sizeof(puf);

printf("%% ");//转义字符,两个%可以打印出一个%

while(gets(but,len,stdin)!=NULL)

{

//当界面有字符串输入的时候我们要去开辟一个子进程去执行界面输入的命令

if((pid = fork())<0)

{

printf("fork error");

return -1;

}

else if(pid == 0)//子进程

{

//execlp函数可以调用系统自带的命令如果使用execl那么就需要将命令的路径一同带上

execlp(buf,buf,(char *)0);


perror("execlp error\n");

return -1;

}

if(waitpid(pid,&status,NULL);

{

printf("waipid error\n");

return -1;

}

printf("%% ");

}

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值