// console = fopen("con", "wt"); this worked under windows
// console = fopen("/dev/console", "wt"); segmentation fault
console = fopen("/dev/tty0", "wt"); returns zero
用 C 语言编写,使用 Mint Linux。无论 stdin 和 stdout 的重定向如何,我都想与控制台对话。
最佳答案
/dev/console
设备不一定对您可用。对于 Linux,如果您碰巧查看当前虚拟终端,该设备只会显示任何结果。此外(包括 Linux),对于大多数系统,/dev/console
需要更高的权限才能打开它,例如,您的应用程序以 root
身份运行。这是因为一些系统消息被写入了系统控制台。
为了进一步讨论,这里有几个链接:
- Linux: Difference between /dev/console , /dev/tty and /dev/tty0
- 7. Terminal Special Files such as /dev/tty 来自 Text-Terminal HOW-TO
- Understanding /dev来自 Linux Journal
关于无法打开/开发/控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29444630/