都知道呼叫system命令無法獲取返回值,所以很多時候採用popen來獲取,但是有乙個問題popen+fgets獲取返回值的時候,本身popen
ntp部分**如下:
void* ntpdate::ntpsyncproc(void* args)
else
}if (update == false)
}pclose(freport);
}usleep(mperiod * 1000 * 1000);
} }return null;
}
popen怎麼使用的不解釋了,說出關鍵部分:1.首先是將fgets阻塞模式改為了非阻塞模式使用了fcntl()函式,但是測試的過程發現由於非阻塞模式fgets還未獲得資料就已經拋棄了,所以加了usleep睡眠10 s來獲取,因為ntp返回值獲得測試時大概是6s左右,所以設定10s保證能100%獲得,當然可以設定更大,因為呼叫popen就已經執行了system命令,所以對於校時並不影響。2.另外也可以採用select模式改為非阻塞模式,**就不貼了。3.此外還可以採用「&」後台執行(網上說"&"其實已經是非阻塞模式了,具體對不對不是很清楚),反正採用以上三種方式都可以解決ntp執行緒卡頓原因,以上三種方式我都試過。 update layer tree導致頁面卡頓
前因 今天檢查乙個vue頁面問題,就是在切換tab時候 某些win10電腦 頁面會卡頓一段很長的時間,短則3秒,長則十幾秒,這個體驗非常糟糕,於是我著手尋找其中原因。概況 這個vue頁面的元素非常多,主要分為六個tab內容,切換tab也只是控制tab內容的顯隱。按道理這是非常簡單的行為,不應該出現卡...
其他執行緒訪問UI執行緒
final progressbar pb new progressbar shell,swt.none pb.setbounds 68,153,365,17 final int minnimum pb.getminimum final int maximum pb.getmaximum runnab...
NFS導致df h卡主解
nfs服務意外斷開,導致掛載的客戶端 df th 命令無法使用,及掛載目錄無法 cd ls 解決思路 1 強制取消客戶端掛載 2 重啟nfs服務,客戶端和服務端都需要重啟 3 重新掛載nfs 處理方法 1 強制取消客戶端掛載 cat etc mtab umount lf mnt 2 重啟nfs服務,...