teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

pipe()じゃなくてdup2()

2022/05/20 07:39

投稿

int32_t
int32_t

スコア21933

answer CHANGED
@@ -1,3 +1,3 @@
1
- `fork()` と `execl()` を使っている場合は、`pipe()` を追加します。「pipe fork exec」あたりでウェブ検索すると例がたくさん見つかると思います。
1
+ `fork()` と `execl()` を使っている場合は、`dup2()` を追加します。「dup2 fork exec」あたりでウェブ検索すると例がたくさん見つかると思います。
2
2
 
3
3
  `fork()` と `execl()` をやめて `popen()` にしたほうが簡単かもしれません。

2

.

2022/05/20 07:23

投稿

int32_t
int32_t

スコア21933

answer CHANGED
@@ -1,3 +1,3 @@
1
- `fork()` と `execl()` を使っている場合は、`pipe()` を追加します。
1
+ `fork()` と `execl()` を使っている場合は、`pipe()` を追加します。「pipe fork exec」あたりでウェブ検索すると例がたくさん見つかると思います。
2
2
 
3
3
  `fork()` と `execl()` をやめて `popen()` にしたほうが簡単かもしれません。

1

.

2022/05/20 07:21

投稿

int32_t
int32_t

スコア21933

answer CHANGED
@@ -1,2 +1,3 @@
1
- `execl()` だけではできません。そもそもこの関数は通常は帰ってこなので
1
+ `fork()` と `execl()` を使っている場合は、`pipe()` を追加します
2
+
2
- `popen()` や、`pipe()` `fork()` `exec*()` の組み合わせを使必要あり
3
+ `fork()` `execl()` をやめて `popen()` にしたほうが簡単かもしれせん