[问题] 程式里怎么读 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