Winsock套接字不能用
_open_osfhandle()函数映射为一个流文件
_open_osfhandle()函数在windows下可以将一个win32打开的文件句柄映射成为一个普通的C库里面的流文件接口,参见下例:
void OSFileToCRTFile()
{
HANDLE hFile = CreateFile("c://test.dat", GENERIC_READ | GENERIC_WRITE, 0, NULL,
OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
char szText[] = "Hello world!/n";
DWORD dwWritten;
WriteFile(hFile, szText, strlen(szText), &dwWritten, NULL);
FILE* pFile = NULL;
int nHandle = _open_osfhandle((long)hFile, _O_TEXT | _O_APPEND);
if (nHandle != -1)
pFile = _fdopen(nHandle, "wt");
if(pFile)
{
int n = fputs("write by FILE*!", pFile);
fflush(pFile);//
立即写入文件
// n == 0
}
CloseHandle(hFile);
}
在Linux下可以不必用这个函数,Linux的世界里都是文件,但是在windows下对套接字winsock却不可以这样映射,已经试验验证过了。