- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这段代码:
#include <stdio.h>
#include <iostream>
using namespace std;
int main() {
cout << fileno(stdout) << endl;
}
但在这个包中:http://nuwen.net/files/mingw/mingw-9.5-without-git.exe
它返回:test.cpp:5:24: error: 'fileno' was not declared in this scope
最佳答案
MinGW 有 fileno
。从我的 MinGW 窗口:
$ grep -r fileno c:/mingw/include
c:/mingw/include/stdio.h:_CRTIMP int __cdecl __MINGW_NOTHROW _fileno (FILE*);
c:/mingw/include/stdio.h:_CRTIMP int __cdecl __MINGW_NOTHROW fileno (FILE*);
c:/mingw/include/stdio.h:#define _fileno(__F) ((__F)->_file)
c:/mingw/include/stdio.h:#define fileno(__F) ((__F)->_file)
糟糕,不幸的是,问题是 MinGW 做了一些极其愚蠢的事情。它使 stdio.h
(一个与 GCC 无关的库)扩展的可见性成为 GCC 特定方言控制标志的主题。
Cygwin 也有这个问题,几年前在 Cygwin 邮件列表中的一个讨论线程中,他们强烈否认这是一个问题。
正确的方法是使用_POSIX_SOURCE
、_XOPEN_SOURCE
等特征选择宏。 (这些宏近年来激增并且变得更加复杂。)
即使指定了 --ansi
,MinGW 也应该在命令行上遵守 -D_POSIX_SOURCE
并显示 fileno
。
现在的情况是,您必须妥协语言方言并接受 GCC 扩展和不合规,只是因为您希望 POSIX 函数声明可见。
不过,我想出了一个解决方法,它不涉及在源代码中做任何丑陋的事情。看这个:
gcc -Wall -ansi -pedantic -U__STRICT_ANSI__ foo.c -c
就是这样。在 MinGW 上,我们没有使用像 -D_POSIX_SOURCE
这样的特征选择宏,而是使用 -U__STRICT_ANSI__
来去除 GCC 的宏。
我在我的 ./configure
脚本中添加了一个测试来检测这种损坏的情况,并将 -U__STRICT_ANSI__
添加到 CFLAGS
。在我的项目中就像一个魅力。
关于c++ - nuwen.net MinGW Distro 中没有 `fileno()` 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14172884/
我在使用 fcntl() 和 fileno 时遇到问题。我在实现锁定机制时遇到问题。但是,当我尝试关闭文件时,出现以下错误 fcntl: Bad file descriptor。我正在使用 filen
我正在尝试在我的 C 代码中使用 posix 函数 isatty() 来判断输出是否被重定向。但是,为此我需要一个文件描述符,而且根据我的研究,fileno() 似乎不再包含在 stdio.h 中。是
作为我正在编写的 python 项目的一部分,我有一个包装 stdout 流和文件的对象。然后,我的类上的 write() 方法会写入流和文件。然后,我将 sys.stdout 设置为我的对象,以便任
Python fileno()函数:得到文件编号 该函数用于得到文件在进程中的编号,这是一个整数值。其中,stdin 在进程中的文件编号永远是 0,stdout 永远是 1,stderr 永远是 2,
import pandas as pd import numpy as np import matplotlib.pyplot as plt from datetime import datetime
是否可以在不使用 fileno(FILE* file) 的情况下从文件指针获取文件描述符? 特别是,是否可以仅使用 C 标准库中的函数?(我的问题实际上是因为 fileno() 是一个 POSIX 标
我正在用 funopen 打开一个流 FILE *fin = funopen(cookie, readfn, NULL, NULL, closefn); if (fin == NULL) {
我在不同服务器上的许多项目中使用过 Photologue,以前从未遇到过此问题。 当Photologue调用此函数时 self.create_size(photosize) 我收到此错误 Unsupp
我非英语母语,因此有些惯用术语我不懂。 函数 fileno() 或 header errno.h 中的“no”真正含义是什么? “no”是“number”的缩写吗? 如果是,为什么? 最佳答案 在 m
我正在尝试将文件(音频文件)从 django webapp 上传到 django rest 服务。 形式: {% csrf_token %} V
我想将 grep 的输出缓冲到缓冲区,然后用 pandas 读取它,以避免将巨大的原始文件加载到内存中: import subprocess import io import pandas as pd
我在 Windows 8 上运行 Cygwin,试图为我想修改的游戏编译源代码。不幸的是,我在构建涉及 fileno 函数时遇到了一些错误。在谷歌搜索之后,问题似乎与 c++11 支持有关(我不太确定
我正在处理巨大的文件。 (>>>2GB)。我的问题是,如果文件大于 sizeof(int),在文件描述符上使用 fileno() 是否安全? 这里是一个简短的代码片段: #define _FILE_
我正在使用来自此链接的服务器和客户端程序:http://www.bogotobogo.com/python/python_network_programming_tcp_server_client_c
我正在使用一个使用 threads 的 Perl 脚本。和 threads::shared .我想从一个单独的线程打开的文件句柄中读取,但是 threads::shared不能承认它是共享标量的值。
有没有办法将 int 类型(文件描述符)的变量转换为 C 中的 FILE 类型?我有一个打开的管道 fd,我想使用需要 FILE 的函数。 最佳答案 你不能投它,但你可以调用fdopen(3) ,这正
我正在尝试编写一个与 Python 2 标准库的 socket.socket 具有相同接口(interface)的类。 当程序尝试调用 select.select() 时,我在尝试重现对象应具有的行为
免责声明:不要使用 ::feof() 作为循环条件。 例如,请参阅以下问题的答案:file reading: feof() for binary files 但是,我有“真实的”代码演示了一个问题,它
我刚刚使用 easy_install 安装了 Pyevolve,在尝试运行我的第一个程序时遇到错误。我首先尝试复制并粘贴 first example 的源代码但这是我尝试运行它时收到的信息: Trac
此代码在使用 Python 2.5.1 运行时生成“AttributeError: 'Popen' object has no attribute 'fileno'” 代码: def get_blam
我是一名优秀的程序员,十分优秀!