2014-01-05 53 views
0

你好,我是Linux和c編程的新手,所以這可能是個愚蠢的問題,但我找不到答案。使用時間函數時出現分段錯誤(核心轉儲)錯誤

我寫一個在家工作,他們希望我使用time()功能打印在節目結束的執行時間,所以當我在程序中使用的功能我得到的消息segmentation fault (core dumped),當我刪除該程序的作品agine。 然後我創建了下面的代碼測試文件:

#include <stdio.h> 

int main() 
{ 
    time(); 
    return 0; 
} 

,我得到了相同的錯誤消息。

也試過:

#include <stdio.h> 

int main() 
{ 
    time(NULL); 
    return 0; 
} 

而且

#include <stdio.h> 
#include <time.h> 

int main() 
{ 
    time_t t; 

    time(&t); 
    return 0; 
} 

,並得到了同樣的錯誤。

所以我做錯了什麼?

感謝

+0

適合我。你如何編譯它?你確定你正在運行正確的程序嗎? –

+0

第一個程序不會編譯,因爲你錯過了參數。 –

+0

以上所有程序爲我編譯和執行中的問題 – AlaaL

回答

3

在你的前兩個例子,你忘了包括time.h中這是這些例子中分段錯誤的原因。如果您使用gcc,請嘗試使用-Wall編譯(打開所有警告)。你應該得到一個警告,指出函數「time」的隱式聲明 - 換句話說,你忘記了包含time.h.

然而,你的最後一個例子對我來說工作得很好。但是,如果您仍然收到分段錯誤,請嘗試使用gdb進行調試。

1
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

int main(void) 
{ 
    time_t now; 
    time(&now); 

    printf("%s", ctime(&now)); 

    return EXIT_SUCCESS; 
}