读书人

execvp函数有关问题()

发布时间: 2012-04-26 14:01:31 作者: rapoo

execvp函数问题(在线等)
原程序:(不管输入什么,运行到execvp的时候都会报错,好像是输入到execvp函数中的参数有问题,但我不知道是哪出毛病了,还望各位指教)
int main()
{
int i = 0,j;
char buf[256];
char *argv[1024];
fgets(buf,256,stdin);
printf("%s\n",buf);
argv[0] = strtok(buf," ");
do
{
argv[++i] = strtok(NULL," ");

}while(NULL != argv[i]);
for(j = 0; j < i; j++)
{
printf("%s\n",argv[j]);
}
if(-1 == execvp(argv[0],argv))
perror("execvp");
return 0;
}


[解决办法]

C/C++ code
#include <stdio.h>#include<unistd.h> #include <stdlib.h>#include <string.h>int main(){    int i = 0,j;    char buf[256];    char *cmd;    char *argv[1024];        fgets(buf,256,stdin);    cmd = strtok(buf," ");    argv[i++] = cmd;        while ((argv[i] = strtok(NULL," ")) != NULL)    {        i++;    }        for(j = 0; j < i; j++)    {        printf("%s ",argv[j]);    }        argv[j-1][strlen(argv[j-1])-1] = 0;    argv[j] = NULL;    char * argv1[ ] ={"ls","-al","/etc/passwd",0};     if(-1 == execvp(cmd,argv)) {        perror("execvp");    }             return 0;} 

读书人网 >C语言

热点推荐