2013-04-17 2 views
1

Я очень старался, но не мог придумать способ, чтобы напечатать сообщение об ошибке, еслиКак сделать найти -name вернуть ошибку, если файл не найден

find -name \"filename"

не находит файл. Код, я использую до сих пор выглядит следующим образом:

char *argv[]; 
     argv[0]="find"; 
     argv[1]="-name"; 
     argv[2]=strcat(str,"\abc.txt"); 
     argv[3]=NULL; 
     pid_t pid; 
     pid= fork(); 

    if(pid==0) 
    { 
    execvp(argv[0],argv); 
    printf("file does not exist"); 
    } 

Но я не могу напечатать мое заявление для печати, так как find -name \"filename" никогда не возвращает ошибку.

+1

Вам нужно будет проверить вывод из 'find', например. используя трубу. –

ответ

0

пытаются с помощью:

find -f PATTERN 

после использовали эту конструкцию, то есть код результата по:

echo $? 

если PATTERN не существует, то этот результат код должен быть 1 (или не равно нуль в некоторых случаях)

+0

thnx 4 ваш ответ .i надеюсь, что он работает – husnain

0

Вы можете использовать состояние оболочки, такие как:

[ "$(find /opt -name '*.txt')" ] && echo Found || echo Not found 

которая в основном так же, как:

[ "$(find /opt -name '*.txt')" '!=' '' ] && echo Found || echo Not found 

Если вы используете GNU найти, попробуйте использовать -quit.

 Смежные вопросы

  • Нет связанных вопросов^_^