看板 C_and_CPP 關於我們 聯絡資訊
我知道在 main(int argc, char*argv){ } 可以傳外部參數進去例如 xxx.exe "參數" 但如果我在 main 裡面有一個無窮迴圈 while while 裡面我該如何獲得外面傳進來的參數呢??(假設這個無窮迴圈不能read file) 短時間內想不出來="= 謝謝指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.69.181 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1470745062.A.83C.html
Sidney0503: 你在供三小? 08/09 20:20
Sidney0503: polling i/o? 08/09 20:20
gn00618777: read file 是我想到的方法,就是S大想到的polling io 08/09 20:23
gn00618777: 可我是在 android 系統內的底層,無法讀取file 08/09 20:24
Sidney0503: polling (void**)變數 08/09 20:28
hn12404988: socket programming? bind() accept() recv() 08/09 20:35
gn00618777: 請問S大,那這個程式的外部該如何指定到這個變數呢? 08/09 20:36
gn00618777: 假設我要從這個程式傳"adc"這個參數進來 08/09 20:38
Sidney0503: 你的外面是多外面? 用網路傳如何? 08/09 20:41 抱歉~"~ 簡單就是說我一個 daemon 執行檔要去接參數,來使daemon做不同的行為 但我的daemon裡面有一個while迴圈,我一執行 daemon 他就會停在 cmdline 不能打指令,所以我的daemon 只能接受一次參數 ※ 編輯: gn00618777 (61.220.69.181), 08/09/2016 20:45:25
prismwu: 吃中斷嗎 中斷去讀個參數再回去 08/09 20:52
Sidney0503: 這已經是系統等級的設計 command buffer? 08/09 20:52
steve1012: 開thread 用event loop 配callback 08/09 21:09
steve1012: 講一個最簡單的 開一個thread放你的loop 08/09 21:11
steve1012: 設一個flag book new_input 08/09 21:12
steve1012: 你外面有讀到東西就把flag改掉 這夠簡單了吧 08/09 21:12
Sidney0503: 我喜歡樓上這個方法 08/09 21:21
LPH66: 既然都說是 daemon 了就不要管參數, 先決定你要怎麼送東西 08/09 21:31
LPH66: 給這個 daemon 再來決定要怎麼讀 08/09 21:31
LPH66: 其實就是 Sidney 在問的「你的外面是多外面」 08/09 21:32
LPH66: 之所以不要管參數是因為參數只是啟動在用 08/09 21:32
TobyH4cker: 不就pipe嗎 08/09 21:33
LPH66: 而你這是 daemon 是會一直接受外面的要求來做事的 08/09 21:33
hn12404988: 不考慮socket嗎?很直覺得不就是用socket解決? 08/09 21:46
LiloHuang: 透過 flag 得記得加 memory barrier 避免 CPU 亂序執行 08/09 22:04
LiloHuang: 也可考慮註冊 SIGUSR1 之類的 signal,在 handler 改值 08/09 22:05
Bencrie: named pipe 也許簡單一點 XD 08/09 23:26
james732: 你需要的是ipc(inter process communication) 08/09 23:29
EdisonX: ide ? os ? 08/10 09:06
MOONRAKER: 樓上不專心。 08/10 09:46
Qoofate: linux IPC fifo ,但原po沒說平台阿 08/10 10:20
gn00618777: ...樓上好多想法,我現在先用另一隻程式寫入參數到 08/10 10:56
gn00618777: device node,最後再由主程式將資料讀出來... 08/10 10:56
gn00618777: 我的平台是 linux 08/10 10:56
gn00618777: 感謝各位給我意見,我會慢慢來try,東西先有出來再說 08/10 10:57
wtchen: 東西出來後可以上來分享嗎?我對這很有興趣 08/10 20:07
chiwa: android的話可以參考libsysutils的FrameworkListener 08/10 21:56
chiwa: 一個典型的Linux socket封裝 08/10 21:56
LiloHuang: 也可考慮 boost::interprocess::message_queue 08/11 01:08
Bencrie: 其實可以找 APUE 來看 08/11 16:45