首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求问读写文件用API好和还是标准语言库好,该怎么解决

2012-05-10 
求问读写文件用API好和还是标准语言库好RT,用系统API提供的好还是用C/C++的标准函数好啊系统API还可以提供

求问读写文件用API好和还是标准语言库好
RT,用系统API提供的好还是用C/C++的标准函数好啊

系统API还可以提供访问控制,C/C++标准库不能

同时求详细性能比较数据:
读写1G文件API快还是标准函数库快
哪个使用方便

[解决办法]
Windows API本身就比真正的“系统调用”高一层(windows系统中platform api实际上起到的是linux系统中glibc的作用),他的File函数是带缓冲的,所以效率也高也比较好用。

不过至少VC的C标准库性能也还可以,至少对于普通硬盘来说没本质区别,虽然理论上应该慢一些(C标准库是三缓冲,用户分配的缓冲区+标准库缓冲+系统缓冲,至少多一次复制,另外还有其它的实现开销)

C++ stream就不行了,用默认缓冲区大小明显要慢得多得多,加大缓冲区可以改善

文件映射应该更快些,至少省去了文件复制到内存缓冲区这一步,只有系统缓冲在起作用,而且对于非连续的复杂文件操作,流程上也简单些
[解决办法]

探讨
RT,用系统API提供的好还是用C/C++的标准函数好啊

系统API还可以提供访问控制,C/C++标准库不能

同时求详细性能比较数据:
读写1G文件API快还是标准函数库快
哪个使用方便

[解决办法]
探讨
明白了,其实我是要用Linux下的API,不过一样套用,最后一个问题

int open(const char *pathname, int flags, mode_t mode);

第二个参数
S_ISUID 设置用户执行ID
S_ISGID 设置组的执行ID
干嘛用的?我Linux是新手

[解决办法]
某些程序需要以和调用者不同的身份运行
比如su

热点排行