有没有更好的方法来编写设备文件而不是多次写入?

dan*_*ter 1 c

实际上,我想在我的Linux设备中三次闪烁LED.

我可以通过编写1和0来简单地测试为 echo "1" > /dev/ipuc/ledd

我希望这是在C程序中,它最终像这样,我想避免这么多写.下面的代码是外行实现,write会有返回代码以获得更好的虚假证明.

static char *ledd = "/dev/ipuc/ledd";
int fd = -1;
if( (fd = open(ledd, O_RDWR ) ) == -1 )
{
        perror( ledd );
}
write(fd, "1", 1);
write(fd, "0", 1);
write(fd, "1", 1);
write(fd, "0", 1);
write(fd, "1", 1);
write(fd, "0", 1);
Run Code Online (Sandbox Code Playgroud)

Eug*_*Sh. 6

结合答案和评论:

char sequence[] = "1101001"; // Whatever sequence here 
char *s = sequence;

while (*s)
{
    write(fd, *s++, 1);
    usleep(300000); // Or some other delay facility
}
Run Code Online (Sandbox Code Playgroud)

如果你只是想眨眼COUNT / 2次:

unsigned int i;

for (i = 0; i < COUNT; i++)
{
    write(fd, '0' + (i % 2), 1);
    usleep(300000); // Or some other delay facility
} 
Run Code Online (Sandbox Code Playgroud)

或者如果你想永远闪烁它:

unsigned int i = 0;
while(1)
{
    i ^= 1; // Toggle  LSB
    write(fd, '0' + i, 1);
    usleep(300000); // Or some other delay facility
} 
Run Code Online (Sandbox Code Playgroud)