|
导航:[首页]->[bash]->[fd,FILE*,HANDLE相互转换]
##fd和FILE*相互转换
使用fileno函数从FILE指针获得fd。
使用fdopen函数打开一个fd并返回FILE指针
###参考
- http://msdn.microsoft.com/en-us/library/zs6wbdhx\(v=vs.80\).aspx
- http://linux.die.net/man/3/fileno
- http://pubs.opengroup.org/onlinepubs/009604499/functions/fdopen.html
##fd和HANDLE相互转换
使用_get_osfhandle函数从fd获得HANDLE
使用_open_osfhandle函数从HANDLE获得fd
###参考
- http://msdn.microsoft.com/en-us/library/ks2530z6.aspx
- http://msdn.microsoft.com/en-us/library/bdts1c9x.aspx
- http://blog.csdn.net/zjl_wzw/article/details/6162846
##重新打开
使用freopen函数重新打开FILE*
使用DuplicateHandle函数重新打开HANDLE
使用dup/dup2/dup3函数重新打开fd,但是不能变更权限,可以使用fcntl配合F_SETFL变更权限。
###参考
- http://www.cplusplus.com/reference/cstdio/freopen/
- http://msdn.microsoft.com/en-us/library/windows/desktop/ms724251\(v=vs.85\).aspx
- http://www.kernel.org/doc/man-pages/online/pages/man2/fcntl.2.html
- http://www.kernel.org/doc/man-pages/online/pages/man2/dup.2.html
|