日期:2014-05-16  浏览次数:20723 次

一个函数的问题: write(..)
小弟现在接手一份Linux下的C代码,   要转换到VC上面去,   原来有这么一句:
write(STDOUT_FILENO,   packet_buffer,   buffer_size);
这第一个参数STDOUT_FILENO在VC中是没有定义的,   我假设它是一个宏,   而且猜想它的值为1.   不知道有没有错呢?

现在我改为:   write(1,   packet_buffer,   buffer_size);   这是往某个文件中写入数据,   但实际运行时,   会在窗口上打印出数据来.   请指教了.

另外还想问一下,   在Linux下编程的帮助文档是什么?
Windows与Linux对C/C++的实现都很相似,   不知道这些api是不是可以通用呢?   比如Linux下的write与Windows下的write是不是一样的功能?
谢谢.


------解决方案--------------------
write(1, packet_buffer, buffer_size)
第一个参数是unix系统的文件描述符,1表示标准输出,所以在窗口上打印出来了
如果你要写入文件,那么用open(),得到文件的描述符,作为write的第一个参数

参考手册
man 函数名