为什么这个文件不写?

时间:2013-08-13 23:08:19

标签: c++ c file-io embedded embedded-linux

所以我有一种情况,我试图写入嵌入式Linux文件(Nitrogen6x板)。我可以使用echo 1 > /sys/class/gpio/gpio16/value手动执行此操作。但是,当我尝试通过C代码执行相同的操作时:

FILE *fs;
fs = fopen("/sys/class/gpio/gpio16/value","w")
fputc(1,fs);
fclose(fs);

它不起作用。它不会给出任何错误或任何错误,它只是不起作用。以前有没有遇到过这个?我该怎么做才能解决这个问题。有没有办法像我手动一样“回声”...但是从代码中执行此操作?什么是最好的方法?

感谢您的帮助!

2 个答案:

答案 0 :(得分:7)

那是因为你正在写“CTRL-A”(字符代码1,而不是echo发送的数字'1')到gpio16 /值。

尝试:

fputc('1', fs);

如果仍然无效,可能还需要换行:

fputs("1\n", fs); 

答案 1 :(得分:3)

尝试使用fputc('1',fs);

echo写道asci您重定向到该文件。