【发布时间】:2019-06-12 19:25:35
【问题描述】:
我有一个程序版本,它曾经编译为 *.o 文件,但现在没有,并给出了编译器错误。
我尝试在 Linux 上使用 gcc 编译器编译我的代码,但编译失败。
#include <stdio.h>
int isatty();
long isatty_(lio_number)
long *lio_number;
{
int file_desc;
if ((*lio_number)==5)
{
file_desc = stdin->_file;
return isatty(file_desc);
}
else
return 0;
}
我希望命令 gcc -c isatty.c 产生 isatty.o 但它没有。相反,我收到了这条消息:
isatty.c: In function ‘isatty_’:
isatty.c:11: error: ‘struct _IO_FILE’ has no member named ‘_file’
【问题讨论】:
-
永远不要使用
FILE结构的任何成员。相反,请使用fileno(stdin)。 -
lio_number参数很奇特。请您至少展示一个使用此功能的代码示例吗? -
你从哪里得到这个代码?它是用一种古老的 C 语言编写的(并且是不可移植的)。
标签: c linux compiler-errors