Я начал изучать обработку команд с помощью C, но я столкнулся с проблемой этой программы на C. Он выполняет команду ls
до того, как она предназначена.Выполнение команды программы C перед тем, как сообщить
Gcc информация:
gcc version 6.2.1 20161124 (Debian 6.2.1-5)
Это код:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
printf("Is command processor available?\n");
if (system(NULL))
{
printf("Command processor available!\n");
}
else
{
printf("Command processor not available!\n");
exit(1);
}
printf("Executing command ls");
i=system("ls");
printf("Returned value is: %d.\n",i);
return 0;
}
Кусок кода я говорю о том, эта конкретная линия:
printf("Executing command: ls");
Если программа работал с этой частью кода:
Is command processor available?
Command processor is available
systemProcessing systemProcessing.c
Executing command: lsReturned value is: 0.
Он выполняет команду, прежде чем на самом деле говорят, чтобы
Но когда я закончу код прочь с новой строки «\ п», его выход, как и ожидалось:
Is command processor available?
Command processor is available
Executing command: ls
systemProcessing systemProcessing.c
Returned value is: 0.
Почему это что при добавлении новой строки в строку код печатает то, что он собирается сделать перед выполнением, но без него он выполняется, а затем печатает, что будет выполняться?
Ответ, который вы дали, был информативным и воплотил его в код, работавший как шарм! Я надеюсь быть таким же знающим, как и ты один день :) Спасибо! – Bl4ckH4z3