いっしょにtalk C栗(第七十八回:C言語インスタンス--作成プロセス)


皆さん、こんにちは、前回はDIY lsコマンドの続きの例を話しましたが、今回はプロセスの作成を話しました.余談はさておき,話は本筋に戻る.一緒にtalk C栗を食べましょう!
役人たちは、プロセスの概念について、簡単に紹介します.プロセスはシステムで実行されているプログラムです.例えば、私たちが使用しているvimはプロセスです.psコマンドを使用して確認し、端末にps xコマンドを入力すると、以下の結果が得られます.
  PID TTY      STAT   TIME COMMAND
 1550 ?        Ssl    0:00 cinnamon-session --session cinnamon
 ...                              //         ,     
 5276 pts/2    Ss     0:00 bash   //             
 5297 pts/2    S+     0:00 vim    //     vim      
 5298 pts/1    R+     0:00 ps x   //ps          

プロセスは抽象的な概念であり、上の実際の展示を通じて、プロセスに直感的な印象を持つべきだと思います.プロセスというものを聞いたとき、windowsを使っていたことを思い出して、タスクマネージャを開いてプロセスを見ました.今考えてみると、当時はこのようなやり方もいいですが、Windowsシステムを使っている見官がいたら、このようにやってみてください.ははは.
端末にコマンドを入力し、車に戻るときにプロセスを作成します.さっき、psコマンドを使用してプロセスを表示すると、システムにプロセスが作成されました.プロセス名はps、つまり、上の実行結果のCOMMANDという列です.プロセスの名前はすべてアルファベットで、時々長いです(例えば、上記の実行結果の最初のプロセス名が比較的長い)ため、システムはプロセスを番号管理する.プロセスの番号はPID、すなわちプロセスIDと呼ばれる.上記の実行結果の最初の列がプロセスIDである.プロセスIDは0から始まる整数であり、異なるシステムは作成するプロセスの数に制限があるため、プロセスIDは限られた整数である.いくつかのIDの中で0と1は特殊なIDで、システムは保留して、自分で使うためです.どのように使うかに基づいて、後で紹介します.
役人たち、今プロセスを作成する方法を知っていますか?「コマンドを入力して実行します」.この管理者の言うことは完全に正しいです.次に、コードでプロセスがどのように作成されているかを見てみましょう.実際のコードではfork()関数を使用してプロセスが作成されます.この関数の実行に成功すると、0より大きい値が返されます.この値は、新規作成プロセスのPIDです.実行に失敗した場合は、-1に戻ります.次に例を挙げて説明します.
次のコードをファイルに書き込んで保存し、コンパイルして実行します.
#include<unistd.h>
#include<stdio.h>

int main()
{
    pid_t pid;

    pid = fork();

    sleep(5);

    if(pid > 0)
        printf("pid is: %d 
"
,pid); else return 0; }

以下はプログラムの実行結果です.参考にしてください.
./s            //        
pid is: 5456   //        PID

端末を再開し、psコマンドを使用して現在のシステムのプロセスを表示します.結果は次のとおりです.
  PID TTY      STAT   TIME COMMAND
 1550 ?        Ssl    0:00 cinnamon-session --session cinnamon
 ...                              //         ,     
 5375 pts/1    S+     0:00 vim Ex060_CreatProcess.c
 5434 pts/3    Ss     0:00 bash
 5455 pts/2    S+     0:00 ./s   //            s
 5456 pts/2    S+     0:00 ./s   // PID    ,      s      
 5457 pts/3    R+     0:00 ps x

官達を見て、本文の中でコードを書かないで、詳しいコードは私の資源の中に置いて、みんなはここをクリックしてダウンロードして使うことができます.
皆さん、作成プロセスの例についてお話しします.後に何か例があるか知りたいので、次の分解を聞いてください.