一个函数的问题: 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 函数名