[求助]有没有C语言高手啊,关于execv的用法
发布网友
发布时间:2022-11-25 05:06
我来回答
共2个回答
热心网友
时间:2023-10-08 19:55
execv用法介绍:
execv会停止执行当前的进程,并且以progname应用进程替换被停止执行的进程,进程ID没有改变。
如果应用程序正常执行完毕,那么execv是永远不会返回的;当execv在调用进程中返回时,说明这个应用程序应该出错了,此时它的返回值应该是-1,具体的错误代码可以通过全局变量errno查看,还可以通过stderr得到具体的错误描述字符串。
示例如下:
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
main(void)
{
pid_t pid = fork();
if( pid == 0 ) // this is the child process
{
execv("/bin/ls", NULL);
// the program should not reach here, or it means error occurs ring execute the ls command.
printf("command ls is not found, error code: %d(%s)", errno, strerror(errno);
}
热心网友
时间:2023-10-08 19:55
#include<process.h>
int execv (char *path.char *argv[]);
加在exec..函数族名后的后缀p、l、v、e表示指定的函数具有功能;其中v表示参数指针(argv【0】..,argv【n】)按指针数组传送。一般来说,当要传送的参数可变时、用后缀v。