如何通过文件描述符编写数字数组

时间:2015-05-11 12:48:04

标签: c

您好我想将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);
}
}

1 个答案:

答案 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);