【发布时间】:2021-11-28 15:08:26
【问题描述】:
我想知道在 stdio 标头中将STDIN_FILENO 设置为0 是否有一个简单但合乎逻辑的原因,我在测试更复杂的代码时意识到了这一点,这是它的简短版本:
#include <unistd.h>
#include <stdio.h>
void main(char **argv)
{
char *promt = "Not a terminal";
int inter = 1;
int counter = 1;
isatty(STDIN_FILENO) == 0 ? inter = 0 : inter;
while (TRUE)
{
inter == 1 ? write(1, promt, 16) : inter;
fflush(stdout);
counter++;
}
}
另外,如果可能的话,STDIN_FILENO 和Stream 之间的关系是什么?
【问题讨论】:
-
我不明白你的任何一个问题,而且你不应该一次问多个问题
-
Because the standard says so. 我不明白你关于
Stream的问题,这是你的问题中第一次也是唯一一次出现这个词,我不清楚它指的是什么。 -
你是怎么想到
void main(char **argv)的?我不知道你在做什么。 -
isatty的参数是一个文件描述符。这可以是来自重定向文件或终端的流。终端有点特殊,所以它可以有自己的固定号码。 -
为什么字母表的第一个字母总是
A?为什么有时不是B或Z?
标签: c file-descriptor stdio tty