popenでやってみた(Windows/VisualC++):
C
1// command.c (executeから着火される)
2#include <stdio.h>
3
4int main(int argc, char* argv[]) {
5 puts("Hello, world");
6 for ( int i = 0; i < argc; ++i) {
7 printf("argv[%d] = [%s]\n", i, argv[i]);
8 }
9 return 0;
10}
C
1// execute.c (commandを起動する)
2#include <stdio.h>
3
4int main() {
5 FILE* fp;
6 char received[256];
7 fp = _popen("command abc def", "r");
8 while ( fgets(received, 256, fp) ) {
9 puts(received);
10 }
11 _pclose(fp);
12 return 0;
13}