c - 如何通过文件描述符写入数字数组

标签 c

嗨,我想将 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/

相关文章:

c - make 命令中的 M 选项,Makefile

c - c-mpi 程序在本地执行失败

c - xmlEscapeEntities : char out of range - Error

c - 使用ESP计算溢出返回地址

c++ - sqlite blob(由 c/c++ 数组组成)是否与平台无关?

c - Left Shift 和 Right Shift 防止除法丢失

c - 这两个函数序言指令序列有什么区别?

c - 如何在C中舍入而不舍入小数

c - printf 的所有调用都将参数字符串写入一个字符数组

c - 如何在我的控制台应用程序 (C) 中使用颜色?