[問題] 如何讀取外部傳進來的參數?

作者: gn00618777 (非常念舊)   2016-08-09 20:17:38
我知道在 main(int argc, char*argv){
}
可以傳外部參數進去例如 xxx.exe "參數"
但如果我在 main 裡面有一個無窮迴圈 while
while 裡面我該如何獲得外面傳進來的參數呢??(假設這個無窮迴圈不能read file)
短時間內想不出來="=
謝謝指教
作者: Sidney0503 (Sidney0503)   2016-08-09 20:20:00
你在供三小?polling i/o?
作者: gn00618777 (非常念舊)   2016-08-09 20:23:00
read file 是我想到的方法,就是S大想到的polling io可我是在 android 系統內的底層,無法讀取file
作者: Sidney0503 (Sidney0503)   2016-08-09 20:28:00
polling (void**)變數
作者: hn12404988 (Willy)   2016-08-09 20:35:00
socket programming? bind() accept() recv()
作者: gn00618777 (非常念舊)   2016-08-09 20:36:00
請問S大,那這個程式的外部該如何指定到這個變數呢?假設我要從這個程式傳"adc"這個參數進來
作者: prismwu   2016-08-09 20:52:00
吃中斷嗎 中斷去讀個參數再回去
作者: Sidney0503 (Sidney0503)   2016-08-09 20:52:00
這已經是系統等級的設計 command buffer?
作者: steve1012 (steve)   2016-08-09 21:09:00
開thread 用event loop 配callback講一個最簡單的 開一個thread放你的loop設一個flag book new_input你外面有讀到東西就把flag改掉 這夠簡單了吧
作者: Sidney0503 (Sidney0503)   2016-08-09 21:21:00
我喜歡樓上這個方法
作者: LPH66 (-6.2598534e+18f)   2016-08-09 21:31:00
既然都說是 daemon 了就不要管參數, 先決定你要怎麼送東西給這個 daemon 再來決定要怎麼讀其實就是 Sidney 在問的「你的外面是多外面」之所以不要管參數是因為參數只是啟動在用
作者: TobyH4cker (Toby (我要當好人))   2016-08-09 21:33:00
不就pipe嗎
作者: LPH66 (-6.2598534e+18f)   2016-08-09 21:33:00
而你這是 daemon 是會一直接受外面的要求來做事的
作者: hn12404988 (Willy)   2016-08-09 21:46:00
不考慮socket嗎?很直覺得不就是用socket解決?
作者: LiloHuang (十年一刻)   2016-08-09 22:04:00
透過 flag 得記得加 memory barrier 避免 CPU 亂序執行也可考慮註冊 SIGUSR1 之類的 signal,在 handler 改值
作者: Bencrie   2016-08-09 23:26:00
named pipe 也許簡單一點 XD
作者: james732 (好人超)   2016-08-09 23:29:00
你需要的是ipc(inter process communication)
作者: EdisonX (卡卡獸)   2016-08-10 09:06:00
ide ? os ?
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-08-10 09:46:00
樓上不專心。
作者: Qoofate (大魯閣_最強打者)   2016-08-10 10:20:00
linux IPC fifo ,但原po沒說平台阿
作者: gn00618777 (非常念舊)   2016-08-10 10:56:00
...樓上好多想法,我現在先用另一隻程式寫入參數到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
作者: Bencrie   2016-08-11 16:45:00
其實可以找 APUE 來看

Links booklink

Contact Us: admin [ a t ] ucptt.com