我已经开始研究使用 C 进行命令处理,但我遇到了这个 C 程序的问题。ls
它在预期之前执行命令。
海合会信息:
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.
它在实际被告知之前执行命令
但是当我用新行'\n'完成代码时,它的输出与预期的一样:
Is command processor available?
Command processor is available
Executing command: ls
systemProcessing systemProcessing.c
Returned value is: 0.
为什么在字符串中添加换行符后,代码会在执行之前打印出它要执行的操作,但没有它会执行然后打印将要执行的内容?