[問題] 程式裡怎麼讀 cat 的內容?

作者: archon (內湖流川楓)   2014-05-27 15:03:40
開發平台(Platform):
Linux
問題(Question):
我想用偵測電源的腳位,用 Command line 下指令
cat /sys/class/gpio/gpio112/value
大致上是回傳 0 或 1,但我不知道要怎麼直接在程式裡讀到回傳值,
目前我是先執行 system call 把結果輸出到檔案,
system("cat /sys/class/gpio/gpio112/value > acc.txt");
然後再去讀這個檔案的內容,感覺有點繞路...
請問有什麼方式可以讓我直接在程式裡可以拿到 cat 的輸出嗎?
作者: x000032001 (版廢了該走了)   2014-05-27 15:09:00
fopen fscanf
作者: diabloevagto (wi)   2014-05-27 15:31:00
直接用 open 應該也可以試試
作者: archon (內湖流川楓)   2014-05-27 15:44:00
收到!我試試,謝謝兩位大大!!
作者: loveflames (咕啾咕啾魔法陣)   2014-05-27 15:59:00
這問法讓我以為是要取得pipe的輸出
作者: Bencrie   2014-05-27 17:29:00
希望原 po 不會寫成 fopen("cat /sys... > acc.txt"); XD
作者: archon (內湖流川楓)   2014-05-27 18:19:00
之前在開檔的時候沒做 rewind() 所以一下就讀不到了(遮臉
作者: Killercat (殺人貓™)   2014-05-27 19:22:00
我也差點以為是pipe 不過其實popen也可以啦 效果一樣
作者: prismwu   2014-05-27 20:04:00
感覺這篇的原PO陷入奇怪的盲點xd
作者: q82419 (q82419)   2014-05-28 02:39:00
接pipe fork dup2到stdout 最後exec
作者: pcjustin (駱駝)   2014-05-29 09:01:00
popen
作者: loveflames (咕啾咕啾魔法陣)   2014-05-29 15:13:00
如果要取得pipe結果又想跨平台,可以用system在flush前處理stdout buffer

Links booklink

Contact Us: admin [ a t ] ucptt.com