#include <process.h>
#include <stdio.h>
#include <errno.h>
void main(int argc, char *argv[])
{
int i;
printf("Command line arguments:\n");
for (i=0; i<argc; i++)
printf("[%2d] : %s\n", i, argv[i]);
printf("About to exec child with arg1 arg2 ...\n");
execv("CHILD.EXE", argv);
perror("exec error");
exit(1);
}
#include <process.h>
#include <stdio.h>
#include <errno.h>
void main(int argc, char *argv[])
{
int i;
printf("Command line arguments:\n");
for (i=0; i<argc; i++)
printf("[%2d] : %s\n", i, argv[i]);
printf("About to exec child with arg1 arg2 ...\n");
execv("CHILD.EXE", argv);
perror("exec error");
exit(1);
}
我们有输入任何数据,为什么可以打印出东西来呢?execv("CHILD.EXE", argv); 第二个参数是什么呢?
关于进程的函数我也不太懂....
这是我在网上查的:
表头文件:#include <unistd.h>
函数定义:int execv(const char *path, char *const argv[]);
函数说明:execv()用来执行参数path字符串所代表的文件路径, 与execl()不同的地方在于execve()只需两个参数, 第二个参数得用数组指针来传递给执行文件
返回值 :成功无返回值 , 失败返回-1, 失败原因存于errno中
错误代码:参execve()
范例
/* 执行/bin/ls -al /etc/passwd */
#include <unistd.h>
main()
{
char *argv[]={"ls", "-al", "/etc/passwd", (char *) 0};
execv("/bin/ls", argv);
}
另外还有个链接:http://love-nancy.ebok.cn/archives/2006/56517.shtml