我做的事情有点奇怪,但我希望它完全同步。所以我想请你帮忙。我有以下内容:
printf("My name is:");
system("echo syntax_Error");
printf("I am 17 yrs old\n");
这很抽象而不是 echo 我正在执行一个给我输出的软件,所以执行时间是不可预测的,但顺序是一样的。我想要一个 printf 然后是系统调用然后是 printf 这样它们就这样对齐
My name is syntax_Error I am 17 yrs old\n
我在没有锁的情况下尝试了这个命令,但它没有起作用,这是很明显的,或者即使它有时起作用也是不可预测的。我是同步结构的新手,所以我想听听您的意见。
干杯!=)
最佳答案
如果您正在考虑 C 中的线程和互斥(同步),请查看 POSIX 线程。 (人线程)。
正如其他人所说,让您的字符串以正确的顺序刷新标准输出。如果您使用的操作系统带有支持 -n(无换行符)的“echo”,那么这就是您想要的。
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("My name is:");
fflush(stdout);
system("/bin/echo -n syntax_Error");
printf("I am 17 yrs old\n");
fflush(stdout);
}
$ cc main.c -o main
$ ./main
My name is:syntax_ErrorI am 17 yrs old
除了使用“系统”之外,还可以查看“execve”等。“man execve”
关于c - 在 C 中与系统调用同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4958544/