Mã mẫu cho "Out đặt của một chương trình là đầu vào của một chương trình khác dùng ống"
#include <unistd.h>
#include <process.h>
/* Pipe the output of program to the input of another. */
int main()
{
int pipe_fds[2];
int stdin_save, stdout_save;
if (pipe(pipe_fds) < 0)
return -1;
/* Duplicate stdin and stdout so we can restore them later. */
stdin_save = dup(STDIN_FILENO);
stdout_save = dup(STDOUT_FILENO);
/* Make the write end of the pipe stdout. */
dup2(pipe_fds[1], STDOUT_FILENO);
/* Run the program. Its output will be written to the pipe. */
spawnl(P_WAIT, "/dev/env/DJDIR/bin/ls.exe", "ls.exe", NULL);
/* Close the write end of the pipe. */
close(pipe_fds[1]);
/* Restore stdout. */
dup2(stdout_save, STDOUT_FILENO);
/* Make the read end of the pipe stdin. */
dup2(pipe_fds[0], STDIN_FILENO);
/* Run another program. Its input will come from the output of the
first program. */
spawnl(P_WAIT, "/dev/env/DJDIR/bin/less.exe", "less.exe", "-E", NULL);
/* Close the read end of the pipe. */
close(pipe_fds[0]);
/* Restore stdin. */
dup2(stdin_save, STDIN_FILENO);
return 0;
}
Cheers ....
Nguồn
2012-01-04 08:05:27
bạn có thực sự có nghĩa là để truyền dữ liệu giữa hai thực thi riêng biệt (chương trình 1.EXE và chương trình 2.exe) hoặc hai lớp hoặc các chức năng trong các tập tin mã riêng biệt, đó là những gì bạn đã hiển thị cho đến nay? – ChrisBD
windows/linux hoặc ...? – Matt
tôi cần cả hai - Windows n linux ... các giải pháp riêng biệt. bạn có thể giúp chứ ? – Ronin