2011-09-19 19 views
2

我想知道用戶登錄後第二秒鐘的時間。 (TickCount不好,因爲這是從系統啓動)如何找出登錄後的秒數?

我知道我可以使用lastwho獲得時間戳,但我正在尋找一個簡單但強大的解決方案。 我會在可可中使用它,但unix命令是好的。

回答

1

最後,我使用getlastlogx(),感謝Rob Napier將我指向正確的方向(+1)。

這是我想出了:

struct lastlogx *lastLogin; 
    uid_t myuid = getuid(); 
    lastLogin = getlastlogx(myuid,nil); 
    NSDate *dateAtLogon = [NSDate dateWithTimeIntervalSince1970:lastLogin->ll_tv.tv_sec]; 
    NSDate *currentDate = [NSDate date]; 
    NSTimeInterval timeSinceLogin = [currentDate timeIntervalSinceDate:dateAtLogon]; 
    NSLog(@"%1.1f seconds since logon",timeSinceLogin); 
3

查看utmpx(5)界面,具體爲endutxent(3)。這是您從wholast查看內容的編程界面。

+0

如果我使用getlastlogx()從一個非管理員帳戶生成異常和崩潰,因爲lastlogin是nill。我做了一個解決方法,但很高興知道如何從非previliged帳戶獲取信息。 – Tibidabo

相關問題