所以我有一种情况,我试图写入嵌入式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);
它不起作用。它不会给出任何错误或任何错误,它只是不起作用。以前有没有遇到过这个?我该怎么做才能解决这个问题。有没有办法像我手动一样“回声”...但是从代码中执行此操作?什么是最好的方法?
感谢您的帮助!
答案 0 :(得分:7)
那是因为你正在写“CTRL-A”(字符代码1,而不是echo发送的数字'1')到gpio16 /值。
尝试:
fputc('1', fs);
如果仍然无效,可能还需要换行:
fputs("1\n", fs);
答案 1 :(得分:3)
尝试使用fputc('1',fs);
。
echo
写道asci您重定向到该文件。