ChinaUnix.net
相关文章推荐:

fileno

把文件流指针转换成文件描述符用fileno函数,其原型为: int fileno(FILE *stream); 它返回和stream文件流对应的文件描述符。如果失败,返回-1。 以前知道,当程序执行时,就已经有三个文件流打开了,它们分别是标准输入stdin,标准输出stdout和标准错误输出stderr。和流式文件相对应的是,也有三个文件描述符被预先打开,它们分别是0,1,2,代表标准输入、标准输出和标准错误输出。 需要指出的是,上面的流式文件输入...

by tancotq - Linux文档专区 - 2009-07-28 09:40:32 阅读(688) 回复(0)

相关讨论

   在linux系统调用中,标准输入描述字用stdin,标准输出用stdout,标准出错用stderr表示,但在一些调用函数,引用了STDIN_fileno表示标准输入才,同样,标准出入用STDOUT_fileno,标准出错用STDERR_fileno.
请问,他们有什么区别吗?
    stdin等是FILE *类型,属于标准I/O,在<stdio.h>。
    STDIN_fileno等是文件描述符,是非负整数,一般定义为0, 1, 2,属于没有buf...

by gududesiling - 移动操作系统 - 2011-12-21 08:41:28 阅读(759) 回复(0)

fileno()的对象返回的文件描述符号和os.dup2 复制对像描述符 ,是干麻用的呢!

by skyxue215 - Python - 2011-04-01 17:48:17 阅读(1856) 回复(1)

在程序中有这样一行代码 write(STDOUT_fileno,buff,BUFFSIZE); 可执行到 这一行时屏幕上并没有输出任何东西 ,是那里有问题呢 ??

by 一路征程一路笑 - C/C++ - 2010-01-03 16:53:48 阅读(7490) 回复(6)

这段代码运行会宕掉,问题在于fileno函数异常。 现在可以采用下面任一种方法使程序正常运行,但是不明白为什么。 请大家帮忙分析一下原因,thanks。 1:不执行下面程序段,则程序正常运行。 [code] for( i = 0; i < MidFpNum; i++ ){ fclose( MidFp.fp ); }[/code] 2: 如果realloc 改为malloc 重新分配内存,(仍执行上面程序段), 程序也可以正常运行 [code] if( idx >= Alloc_MidFp ){ Alloc_MidFp = Alloc_MidFp + All...

by jack9981 - C/C++ - 2007-05-28 03:13:55 阅读(7258) 回复(49)

[code]#include; #include ; #include; void main() { int orig_stdout; orig_stdout=dup(fileno(stdout)); printf("Writing to original stdout... \n") ; freopen("redir.txt", "w", stdout); printf("Writing to redirected stdout.., \n"); fclose (stdout); fdopen(orig_stdout, "w" ); printf("I'm back writing to the original stdout. \n"); getchar(...

by ilcj - C/C++ - 2004-05-14 22:54:30 阅读(3294) 回复(7)

在写一个程序,报错为找不到stdin_fileno,清问下stdin_fiileno在那文件中

by xkun726 - C/C++ - 2014-12-02 17:09:32 阅读(9622) 回复(4)

举个例子,我给fileno传一个非法指针,在solaris8(gcc 2.95.2)上面程序就崩溃了。我用man看到的fileno The fileno() function returns the integer file descriptor associated with the named stream; see open(2). 不应该崩溃吧! 是不是应该给个错误返回码(例如-1)。在man里面似乎没有提到遇到错误的时候fileno函数应该如何处理,难道这就是著名的"未定义"???????? ----------------------------------------------...

by jeanlove - C/C++ - 2009-02-03 09:03:40 阅读(4035) 回复(10)

刚刚开始接触Linux网络编程,看到程序里用到了STDIN_fileno,不清楚是什么意思。。。 为什么在select()前要: FD_SET (STDIN_fileno, &read_fds); 而在select()后要: if (FD_ISSET (STDIN_fileno, &read_fds)) { ... } 请问这样做的用意是什么?谢谢!

by 蓝白725 - C/C++ - 2005-05-24 21:14:51 阅读(7580) 回复(4)

我想使用fileno()函数把fopen()函数的文件指针转换成为整型的文件描述符。但是fileno()函数总是返回一个“-1”。同样的程序在UNIX下面就很正常。真是搞不懂AS400上面的这个fileno()函数!!!

by AllenYao - AS400 - 2004-05-13 11:38:28 阅读(1113) 回复(2)

本帖最后由 一介村夫 于 2013-02-06 21:42 编辑 做了fclose(stdin)以后,如何在重新打开stdin时使得fileno(stdin)==STDIN_fileno? Linux的man文档上说: [quote]The file descriptor returned by a successful “open” call will be the lowest-numbered file descriptor not currently open for the process.[/quote] 这个算法是不是所有Unix的标准? 如果不是,那么有什么通用算法能够使得fileno(stdin)==STDIN_fileno成...

by 一介村夫 - C/C++ - 2013-02-10 00:02:24 阅读(9741) 回复(94)