测试程序:
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#define MAXFILES 10
int main(int ac,char **av)
{
int i = 0 ;
char *pszSort = "sort" ;
char *sortav[MAXFILES] ;
if(ac < 2)
{
fprintf(stdout,"Must input the file name\n") ;
return 0 ;
}
sortav[0] = pszSort ;
i = 1 ;
while(av[i] != NULL)
{
sortav[i] = av[i] ;
i++ ;
}
// sortav[i] = NULL ;
execvp(pszSort,sortav) ;
perror("Execvp Fails: ") ;
return 0 ;
}
出现这种错误,是由于传给execvp的argv[]参数不是以空指针结尾。