dup2

    0

    1答えて

    ここに私のコードがあり、それを動作させることができません。 int pfd = open("file", O_WRONLY, 0777); int saved = dup(1); close(1); dup(pfd); close(pfd); printf("This goes into file\n"); // restore it back dup2(saved, 1); c

    0

    1答えて

    私はstdin、stdout、stderrをソケット経由でリダイレクトしたいと思っています。 このコードはLinux上で動作します: dup2(socket, 0); dup2(socket, 1); dup2(socket, 2); ではなく、Windows上のソケットはディスクリプタではありませんので。 Windowsでこれを行うにはどうすればよいですか?

    0

    2答えて

    ここにコードスニペットがあります。 int saved_stdout = dup(1); int fd = open("file.txt", O_WRONLY | O_CREAT, 0640); close(1); dup(fd); close(fd); printf("This text should go into the file\n"); //restore stdout

    1

    1答えて

    これは私がやろうとしていることです。親プロセスは2つの子プロセスを作成し、次にstdoutを1つずつstdoutして別のstdinにします。親は5秒待って最初の子を殺します。 これが私のアプローチです。まずパイプを作成します。次にforkを実行して最初の子(gen in code)を作成し、dup2を使用してpipeのwriteをstdoutにコピーします。 2番目の子の別のフォーク(コードではc

    0

    1答えて

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> int main(void) { int pfd1[2]; int pfd2[2]; pid_t pid1, pid

    1

    1答えて

    void pipe_execute(char all[][MAX_SIZE],int i,int n) { if(i==n) { execute(all[i-1]); } else { int fd[2]; char cmd1[100]; pipe(fd); pid_t pid = fo

    1

    1答えて

    私はまだプロセス、パイプ、dup2の新機能を持っているので、私が作成したプログラムの何が間違っているかを知る手助けをしてくれる人がいます。このプログラムはls | wcを実行することになっています。これまでの出力は次のようになります。 この出力が得られた後、端末は引き続き入力を受け入れます。 wcがまだ動いているようですが、lsのようなコマンドを(前に他の入力なしで)置くと、lsを実行してシャット

    0

    1答えて

    現在、私は小さなシェルで作業していますが、複数のコマンド( "ls | sort"など)で構成されるジョブの実行を実装しようとしています。 ソートプログラムが「不正なファイル記述子」に遭遇しているように見えるので、リダイレクションに関する問題に直面しています。最初のコマンドについては :最後のコマンドについては if (pipe(job->tubes[num_comm]) == -1)

    0

    1答えて

    ファイル記述子fdがdupを呼び出して複製し、元のファイル記述子を閉じるとき。 重複したファイルディスクリプタもすべて閉じますか?

    0

    1答えて

    私はLinuxでdup2を試していました。私のテストプログラムは次のとおりです:私はパイプを開き、FIFOへの標準入力にdupを書き込んだり、FIFOへのdup stdoutを読み込んだり、このプログラムを実行するとstdinがfifoに書き込まれ、fifoは自動的にstdoutに内容をダンプします。 #include<stdio.h> #include<unistd.h> int main(