static int
GPIOUnexport(int pin)
{
char buffer[BUFFER_MAX];
ssize_t bytes_written;
int fd;
fd = open("/sys/class/gpio/unexport", O_WRONLY);
if (-1 == fd) {
fprintf(stderr, "Failed to open unexport for writing!\n");
return(-1);
}
bytes_written = snprintf(buffer, BUFFER_MAX, "%d", pin);
write(fd, buffer, bytes_written);
close(fd);
return(0);
}
我有几个与上述 GPIO 代码有关的问题
1)为什么使用 ssize_t?为什么不只使用int?
2) /sys/class/gpio/unexport" 是系统文件吗?如果不是,它是什么?
3)snprintf 打印一些东西到缓冲区,那么写功能是多余的吗?或者什么写函数可以做不同的事情?
4) 我可以使用 ioctl 函数代替 open 吗?