----------------解决方案--------------------------------------------------------
第二个是指针数组
----------------解决方案--------------------------------------------------------
int argc,i;
char *argv[80];
printf("Command line arguments:\n");
for(i=0;i<80;i++)
{scanf("%c",&argv[i]);}//这个argv应该输入什么呢?是dos命令吗?
execv("C语言库函数示例教程.exe", argv);
perror("exec error");
为什么打印打印不出来呢?
----------------解决方案--------------------------------------------------------
#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
----------------解决方案--------------------------------------------------------