1

所以我有一种情况,我正在尝试写入嵌入式 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);

它不起作用。它不会给出任何错误或任何东西,它只是不起作用。有没有人遇到过这种情况?我能做些什么来解决这个问题。有没有办法像我手动那样“回显”......但是从代码中做到这一点?最好的方法是什么?

感谢你的帮助!

4

2 回答 2

7

那是因为您正在向 gpio16/value 写入“CTRL-A”(字符代码 1,而不是 echo 发送的数字“1”)。

尝试:

fputc('1', fs);

如果这仍然不起作用,则可能是您还需要换行符:

fputs("1\n", fs); 
于 2013-08-13T23:10:50.443 回答
3

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

echo写入您重定向到文件的 asci。

于 2013-08-13T23:10:59.177 回答