您好我想将0到255之间的数字写入fd,有人可以更正以下文件中的错误吗?提前致谢
代码:实际上需要增加/减少连接到特定端口的LED的亮度。所以我需要将这些数字写入名为brightness的指定文件。
#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);
}
}
答案 0 :(得分:2)
此:
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);