当前位置: 代码迷 >> C语言 >> 请教exec问题
  详细解决方案

请教exec问题

热度:431   发布时间:2006-09-03 19:17:46.0
请教exec问题
请教int execv(char *pathname, char *argv[]); 这个方法怎么用啊,第一个是文件名,第二个是什么样的字符窜呢?
搜索更多相关的解决方案: exec  char  pathname  int  

----------------解决方案--------------------------------------------------------
第二个是指针数组
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
  相关解决方案