C函数有效,C ++版本没有

时间:2014-05-27 20:41:07

标签: c++ c linux file-io

必须使用内核导出GPIO引脚。它是linux的简单写入文件。

C ++不起作用:

std::ofstream file("/sys/class/gpio/export");
file << gpio;  // an int value

C确实:

int fd, len;
char buf[MAX_BUF];

fd = open("/sys/class/gpio/export", O_WRONLY);
len = snprintf(buf, sizeof(buf), "%d", gpio);
write(fd, buf, len);
close(fd);

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

如果变量是单个字节,则它将作为单个char而不是十进制数输出。许多字符都不可打印,因此您可能看不到输出 - 请确保文件的二进制转储。

修复:

file << (int) gpio;