1. 程式人生 > >Linux下的C語言開發(程序等待)

Linux下的C語言開發(程序等待)



所謂程序等待,其實很簡單。前面我們說過可以用fork建立子程序,那麼這裡我們就可以使用wait函式讓父程序等待子程序執行結束後才開始執行。注意,為了證明父程序確實是等待子程序執行結束後才繼續執行的,我們使用了sleep函式。但是,在linux下面,sleep函式的引數是秒,而windows下面sleep的函式引數是毫秒。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char* argv[])
{
    pid_t pid;

    pid = fork();
    if(0 == pid)
    {
        printf("This is child process, %d\n", getpid());
        sleep(5);
    }
    else
    {
        wait(NULL);
        printf("This is parent process, %d\n", getpid());
    }

    return 1;
}

下面,我們需要做的就是兩步,首先輸入gcc fork.c -o fork, 然後輸入./fork,就會在console下面獲得這樣的結果。

[[email protected] fork]# ./fork
This is child process, 2135
This is parent process, 2134


相關推薦

LinuxC語言開發(程序等待)

 所謂程序等待,其實很簡單。前面我們說過可以用fork建立子程序,那麼這裡我們就可以使用wait函式讓父程序等待子程序執行結束後才開始執行。注意,為了證明父程序確實是等待子程序執行結束後才繼續執行的,我們使用了sleep函式。但是,在linux下面,sleep函式的引數

LinuxC語言開發(已知程序名得到其PID號)

在我的另外一個篇部落格【Linux下C語言開發(訊號signal處理機制)】中需要測試系統呼叫kill來向指定進行號傳送指定的訊號,在同一個測試檔案很容易獲取當前程序的pid,只需呼叫getpid()函式就可獲取當前程序的pid。但是,如果要獲取非當前程序的pid,那應該如何

Linux學習筆記 二 LinuxC語言開發工具

2.1常用編輯工具 1.vim編輯器 VIM編輯器基本山可分為三種模式分別是命令模式,插入模式和底行模式 下面是VIM模式轉換圖。 (1)在.vimrc檔案中設定幾個常用的底行命令 設定縮排命令    :set smartindent 

LinuxC語言程序實現

這是一個簡單的例子 #include <stdio.h> #include <pthread.h>   //thread函式是開的一個程序實現的功能 void thread(void){         int i;         for(i=0

LinuxC語言開發(開篇hello world.)

從大學選擇走嵌入式方向到現在從事嵌入式驅動工程師職位已一年多了,要能勝任嵌入式驅動工程師(當然,這裡我所說的嵌入式驅動工程師並非指驅動開發,往往只需要根據自己的系統移植驅動以及編寫簡單的驅動)確實需要不少知識,如:開發環境搭建、看懂簡單硬體電路原理圖、瞭解常用硬體工作原理、

LinuxC語言程序的編譯過程與ssc平臺出租

vim 匯編 實例 \n sem urn 結果 linux return 使用gcc編譯程序時,編譯工程分為4個階段:ssc平臺出租(企 娥:217 1793 408) (1)預處理:(Pre-Processing) (2)編譯:(Compiling) (3)匯編:(Ass

Linux C程式設計之一:Linuxc語言開發環境

—恢復內容開始— 今天開始根據Linux C程式設計相關視訊的學習所做的筆記,希望能一直堅持下去。。。 1、開發環境的構成 編輯器:VI; 編譯器:選擇GNU C/C++編譯器gcc; 偵錯程式:應用廣泛的gdb; 函式庫:glibc ; 系統標頭檔案:glibc_header; 2、在安裝L

linux C語言程式設計(2)——程序的建立,掛起,解掛,程序間通訊

在 linux 下利用C語言實現程序的建立,掛起和解掛操作 #include <stdio.h> #include <sys/stat.h> #include <sy

LinuxC語言的幾道經典面試題

ref 使用 linu 學習資源 chan ima 什麽 img c語言 本篇文章整理了幾道Linux下C語言的經典面試題,相信對大家更好的理解Linux下的C語言會有很大的幫助,歡迎大家探討指正。 1、如果在Linux下使用GCC編譯器執行下列程序,輸出結果是什麽? 答

LINUXC語言編程調用其他函數、鏈接頭文件以及庫文件

blog head.s 鏈接 color pre () 如果 編譯 聲明 LINUX下C語言編程經常需要鏈接其他函數,而其他函數一般都放在另外.c文件中,或者打包放在一個庫文件裏面,我需要在main函數中調用這些函數,主要有如下幾種方法: 1.當需要調用函數的個數比較少時,

linuxc語言獲取當前時間

keyword spa pre urn markdown view 技術分享 時間 tle 和時間有關的函數定義在頭文件”time.h”中 常用函數: time_t time(time_t *t); 函數說明:此函數會返回從公元 1970 年1 月1 日的UTC

LinuxC語言的socket網絡編程

網絡編程 服務器 enter 編程 scanf 路由 client p s drl Server.c 1 #include <sys/types.h> 2 #include <sys/socket.h> 3 #include <n

LinuxC語言的文件操作

poi 需要 inux 文件 name fcn flag exc 文件描述符 代碼: 1 #include <stdio.h> 2 #include <string.h> 3 #include <fcntl.h> 4 /****

LinuxC語言的進程控制編程

ring func align 能夠 c語言 cve tpi endif def 代碼: 1 #include <stdio.h> 2 #include <unistd.h> 3 #include <sys/types.h> 4

LinuxC語言進程通訊編程

col 映射 一個 標識 define [] clas 操作 style 代碼: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <sys/shm.h> 4 /****

LinuxC語言生成可執行文件的過程

代碼 內容 gcc 創建 inux 匯編代碼 機器 都是 inf 在當前目錄下創建一個C源文件並打開: touch test.c gedit test.c直接編譯: gcc test.c -o test 分步驟編譯: 1) 預處理 gcc -E test.c -o

LinuxC語言獲取本機IP地址

#include <sys/ioctl.h> #include <net/if.h> #include <arpa/inet.h>   char* GetLocalIp() { int MA

linuxC語言程式設計解決warning : incompatible implicit declaration of built-in function問題

         在C語言程式設計過程中,偶遇如下warning,雖然並不影響最終的編譯結果,但是看著warning也很無語,畢竟強迫症。        我們可以發現被警告沒有宣告的都是常用

Linux c語言連線與操作MYSQL

1.安裝mysql 2.安裝mysql.h函式庫 sudo apt-get install libmysqlclient-dev 3. mysql_real_connect() 連線一個mysql伺服器  語法如下 MYSQL *mysql_real_connect

linuxc語言利用iconv函式實現utf-8轉unicode

    由於專案中需要轉換原生unicode到ascii的功能,本來想的用的是linux或者windows自帶的寬位元組轉成窄位元組的函式,但由於本身使用了apr_iconv庫,所以直接使用庫函式來解決。     期間碰到了庫函式使用一直出錯的問題,一