почему он всегда возвращается -1 - PullRequest
0 голосов
/ 05 декабря 2018

Когда я тестировал свою программу, она всегда повторяет -1.Сначала я набираю текстовый файл, и он правильно читает текст, поэтому моя проблема в том, что я не могу заставить execvp работать.Какую документацию мне нужно написать в функции execvp, чтобы она заработала.Может кто-нибудь объяснить, почему эта программа не работает.

int morph(char* number);                                       

void main(int argc,char *argv[]) {         


FILE *fileName = NULL;                                                   
char numberFromFile[MAX_STRING] = "";                                    

// TODO: add work also goes in this function. 

// check the number of command line parmeters           
// if incorrect number print message and exits                           
if (argc < 2) {                                                         
    printf("usage %s filename \n",argv[0]);         
    printf("2 \n");                                  
} else {                                             
    // check if file exists                   
    fileName = fopen(argv[1], "r");                        
    if (fileName == NULL) {  
        printf("file %s does not exits \n", argv[0]);         
        printf("3 \n");                
    } else {   
        int number = 0;

        fscanf(fileName, "%s", numberFromFile);
        //printf("%s \n",numberFromFile); 

        //strcpy(numberFromFile, "1233");

        number = morph(numberFromFile);

    printf("%d \n",number);
    //}                                                                        
 }                                                                              }                                                                                                                                                                                                  
int morph(char *number)  {        

unsigned int intNumber = 0; 
int checkIfPrime = 0; 
checkIfPrime = execvp("/Documents/assignment_4/isPrime",&number); 
printf("%d\n",checkIfPrime);       
if (checkIfPrime == 1) { 
    return 1;        
} else {                 
    return 0;             
}                                                                                           }  
...