我怎么知道子进程在 C 中打印的行数。更好地解释场景,我有一个 c 程序,我将在其中分叉一个进程。所以我想知道子进程打印到标准输出的行数。
如果 ss 是包含 12 个的文件,则可以覆盖 stdin:
#include <stdio.h>
int main(int argc, char const *argv[])
{
printf("%pn", stdin);
FILE * fd = fopen("ss", "r+");
printf("%pn", fd);
stdin = fd;
printf("%pn", stdin);
int a = 0;
scanf("%d", &a);
printf("%dn", a);
return 0;
}
输出:
➜ ./a
0x7fff70ab9350
0x7fff70abf280
0x7fff70abf280
12
捕捉孩子的标准?我该怎么做.你能更具体一点吗?
#include <stdio.h>
main()
{
FILE *fp = popen("ls -1", "r");
int c, l = 0;
do if (c = fgetc(fp), c == 'n') ++l; while (c != EOF);
fclose(fp);
printf("The child process printed %d lines.n", l);
}