Возвращаемое значение функции system()

#include<stdio.h>
#include<stdlib.h>
main()
{
printf("Hello World..\n");
system("ls");
}

Здесь...ON SUCCESSFUL исполнительная системная функция возвращает statys команды "ls"... и ON FAILURE возвращает -1..

так что кто-нибудь может помочь мне получить это условие FAILURE для системной функции, которая возвращает значение как "-1"

1 ответ

system функция возвращает -1 если system само по себе терпит неудачу, не если команда, которую это вызывает, терпит неудачу Например, system возвращается -1 если fork вызов не проходит. Это может произойти, если в вашей системе очень мало ресурсов, таких как память, или если ваша система накладывает ограничение на количество процессов, которые вы можете запустить.

Если команда не выполняется (например, если вы звоните system("false")), значение, возвращаемое system это не просто возвращаемое значение команды; это значение, возвращаемое wait системный вызов; man 2 wait для дополнительной информации. (Это предполагает Unix-подобную систему; поведение system() на других операционных системах отличается.)

Конечно, если вы хотите увидеть значение, возвращаемое при вызове systemвам нужно сохранить это значение в переменной:

int result = system("ls");

Вы должны прочитать документацию для system функция.

Если вы пытаетесь вызвать system потерпеть неудачу и вернуться -1Один из способов сделать это - использовать его для рекурсивного вызова вашей программы. Это может занять много памяти и может повлиять на вашу систему. Делайте это только в том случае, если вы единственный, кто использует систему, и не возражаете против возможности ее работы.

(Кстати, определение для main должно быть int main(void), не просто main()Хотя это не имеет прямого отношения. До 1999 года при отсутствии возвращаемого типа по умолчанию int; это больше не разрешено, но многие компиляторы все еще поддерживают старую форму. Пустые скобки не указывают количество параметров; (void) явно говорит, что нет никаких параметров, и является предпочтительной формой.)

Другие вопросы по тегам