Linux终端编程:控制与交互的深入探索
1. 输出重定向与终端交互
在Linux编程中,有时需要判断标准输出是否连接到终端。下面的代码展示了如何使用 isatty 函数进行判断:
if(!isatty(fileno(stdout))) {
fprintf(stderr,"You are not a terminal!\n");
exit(1);
}
do {
choice = getchoice("Please select an action", menu);
printf("You have chosen: %c\n", choice);
} while(choice != 'q');
exit(0);
当运行 ./menu2 时,如果输出被重定向(如 ./menu2 > file ),程序会提示“你不是一个终端”。
输出重定向是很常见的操作,你可以将标准输出和错误输出重定向到不同的文件:
- 将标准输出重定向到 file ,错误输出重定向到 file.error : ./menu2 >file 2>file.error
- 将标准输出和错误输出合并到一个文件: ./menu2 >file 2>&1
为了确保程序与用户的交互不被重定向,可以直接与终端进行读写操作。Linu
超级会员免费看
订阅专栏 解锁全文
669

被折叠的 条评论
为什么被折叠?



