Программа sdh :
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void main(void) {
FILE *fp = popen("/path/to/asd", "r");
char str[256];
while (fgets(str, sizeof(str), fp) != NULL) {
printf("%s", str);
}
}
Программа asd :
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
void main(void) {
printf("A\n\r");
sleep(1);
printf("B\n\r");
}
При запуске программы sdh ,он ждет 1 секунду, а затем печатает
A
B
Я хотел бы напечатать
A
, подождать 1 секунду, а затем вывести
B
Другими словами, программа asd завершает работу до того, как fgets
удастся прочитать первую строку.Как мне изменить это, чтобы иметь возможность читать строки, как только они напечатаны?