2014-11-15 66 views
1

如何在Minix 3.2.1上寫printf的當前時間?
我嘗試使用如下所示的gmtime,但它在time(&nowtime)上給出錯誤。Minix當前時間

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

struct tm *now; 
time_t nowtime; 
time(&nowtime); 
now=gmtime(&nowtime); 

printf("TIME is NOW %s",now); 

而且,我回想一下,在內核(/usr/src/kernel/main.c),因爲我需要時間MINIX的啓動說,當內核進程結束,並切​​換到用戶。

我在上面的代碼中發現了一些錯誤,比如像下面這樣重建內核的時候;

enter image description here

+0

1)代碼不包括''? 2)發佈錯誤消息。 – chux

+0

是的time.h包含 結構tm *現在給錯誤重新定義'現在'與一個不同的類型。我現在也改變了nowwwww,但仍然給出了相同的錯誤 – Palindrom

+0

似乎有一個矛盾:「給現在的時間錯誤(&nowtime)'」和「struct tm * now」給錯誤重新定義'now'「。可疑錯誤不在'時間(&nowtime)'上。 – chux

回答

0

不是那個熟悉的minix的,但它類似於Unix的Linux的&,所以也許從一些平臺上可能存在的MINIX ......這樣一對夫婦的接近

  • 運行一個人ctime

  • Linux的time()命令的手冊頁包含此示例代碼(您可能需要修改minix,但它會顯示S如何使用asctime()localtime()time()):

    #include <stdio.h> 
        #include <time.h> 
    
        int main(void) 
        { 
         time_t result; 
    
         result = time(NULL); 
         printf("%s%ju secs since the Epoch\n", 
          asctime(localtime(&result)), 
           (uintmax_t)result); 
         return(0); 
        } 
    
+0

這不是特別有用。問題中的代碼正確使用'time'和'gmtime'函數。問題在於OP尚未向我們展示的東西。 –

+0

我在虛擬機中安裝了minix 3.3,編譯並運行了上面顯示的Linux示例代碼的「稍微」修改版本,並且它成功運行。也許OP可以更簡潔地陳述他所遇到的問題,以及他正在獲得的具體錯誤代碼以及他正在努力完成的任務。 – TonyB

+0

託尼也許與我使用的版本的問題,但我也嘗試你的一個,但它失敗,因爲說結果=時間(空)期望int或已知類型..它可以在Linux上運行,但minix無法完全識別,或者我錯過了其他的東西 – Palindrom