嗨,我想将 0 到 255 之间的数字写入 fd,有人可以纠正以下文件中的错误吗?提前致谢
代码:实际上需要增加/减少连接到特定端口的 LED 的亮度。所以我需要将这些数字写入名为亮度的指定文件中。
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
void main(void)
{
int fd, t;
char buf[300];
char z;
while(1)
{
fd = open("/sys/class/leds/pwmD0/brightness", O_WRONLY);
if (fd < 0)
{
abort();
}
for(t=0;t<10000000;t++); //random sw delay
for(z=0;z<255;z++)
{
write(fd, "%s", strlen(z));
printf("Received: %s\n",buf[z]);
}
for(t=0;t<10000000;t++);
for(z=255;z>0;z--)
{
write(fd, "%s", strlen(z));
printf("Received: %s\n",buf[z]);
}
close(fd);
}
}
最佳答案
这个:
write(fd, "%s", strlen(z));
没有意义,write()
函数不是printf()
。阅读更多文档。
你需要这样的东西:
char buf[32];
const size_t len = snprintf(buf, sizeof buf, "%d\n", z);
write(fd, buf, len);
关于c - 如何通过文件描述符写入数字数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30168087/