2012-03-05 40 views
0

我對編程領域很陌生。現在我正在嘗試一些Linux中的基本程序。今天我開始使用time.h的時間函數,但偶爾會遇到困難。我已經完成了以下代碼,以便在幾秒鐘內獲得延遲。Unix編程的頭文件細節

#include <stdio.h> 
#include <sys/types.h> 
#include <time.h> 

void delay_sec (int seconds); 

int main() 
{ 
    printf ("\nhaii\n"); 
    delay_sec (5); 
    printf ("\nbyee\n"); 

    return 0; 
} 

void delay_sec (int seconds) 
{ 
    time_t t1 = time (NULL); 
    while ((time (NULL) - t1) < seconds) 
     ; 
} 

它適用於我。但我需要毫秒的延遲。我讀過time.h手冊,嘗試了一些在那裏定義的函數,但沒有像我預期的那樣工作。事情是,我實際上並不知道這些功能是幹什麼的。

我的問題是什麼,但我在哪裏可以找到像所有函數和參數的詳細信息,返回值的文檔,我的意思是在所有頭文件中定義的所有函數的用戶手冊。

我不相信這樣的事情真的存在,但如果你們幫助我找到接近的東西,我會非常感激。

我打算學習fork,管道,信號,進程,線程等......我知道這是一條很長的路要走。請幫助我。

回答

2

您應該使用POSIX標準sleep功能,而不是你的忙等待delay_sec ......(並使用usleep爲微秒的延遲,或者更好nanosleep

我建議安裝發展的手冊頁(如Debian或Ubuntu上的manpages-dev軟件包)。

否則,看例如在這裏the sleep(3) man page

我強烈建議在Advanced Unix Programming讀一些好書,然後讀上Advanced Linux Programming一些書,然後一些好書POSIX線程。

而且瞭解在維基百科上關於Linux kernelSystem calls等等等等

+1

一個額外的資源:[2008 POSIX(http://pubs.opengroup.org/onlinepubs/9699919799)文檔。這告訴你什麼是標準和什麼不是;它可以幫助你保持代碼的可移植性(如果便攜是一個問題,它可能還沒有,但最終可能會)。 – 2012-03-05 16:46:06