我知道在 main(int argc, char*argv){
}
可以傳外部參數進去例如 xxx.exe "參數"
但如果我在 main 裡面有一個無窮迴圈 while
while 裡面我該如何獲得外面傳進來的參數呢??(假設這個無窮迴圈不能read file)
短時間內想不出來="=
謝謝指教
read file 是我想到的方法,就是S大想到的polling io可我是在 android 系統內的底層,無法讀取file
socket programming? bind() accept() recv()
請問S大,那這個程式的外部該如何指定到這個變數呢?假設我要從這個程式傳"adc"這個參數進來
這已經是系統等級的設計 command buffer?
開thread 用event loop 配callback講一個最簡單的 開一個thread放你的loop設一個flag book new_input你外面有讀到東西就把flag改掉 這夠簡單了吧
作者:
LPH66 (-6.2598534e+18f)
2016-08-09 21:31:00既然都說是 daemon 了就不要管參數, 先決定你要怎麼送東西給這個 daemon 再來決定要怎麼讀其實就是 Sidney 在問的「你的外面是多外面」之所以不要管參數是因為參數只是啟動在用
作者:
LPH66 (-6.2598534e+18f)
2016-08-09 21:33:00而你這是 daemon 是會一直接受外面的要求來做事的
不考慮socket嗎?很直覺得不就是用socket解決?
作者: LiloHuang (十年一刻) 2016-08-09 22:04:00
透過 flag 得記得加 memory barrier 避免 CPU 亂序執行也可考慮註冊 SIGUSR1 之類的 signal,在 handler 改值
你需要的是ipc(inter process communication)
作者:
EdisonX (卡卡獸)
2016-08-10 09:06:00ide ? os ?
作者:
Qoofate (大魯閣_最強打者)
2016-08-10 10:20:00linux IPC fifo ,但原po沒說平台阿
...樓上好多想法,我現在先用另一隻程式寫入參數到device node,最後再由主程式將資料讀出來...我的平台是 linux感謝各位給我意見,我會慢慢來try,東西先有出來再說
作者:
wtchen (沒有存在感的人)
2016-08-10 20:07:00東西出來後可以上來分享嗎?我對這很有興趣
作者: chiwa (我是青蛙,不是王子^_^) 2016-08-10 21:56:00
android的話可以參考libsysutils的FrameworkListener一個典型的Linux socket封裝
作者: LiloHuang (十年一刻) 2016-08-11 01:08:00
也可考慮 boost::interprocess::message_queue