关于函数 _wfopen_s() ?
答案:3 悬赏:70 手机版
解决时间 2021-03-23 04:58
- 提问者网友:佞臣
- 2021-03-22 18:48
关于函数 _wfopen_s() ?
最佳答案
- 五星知识达人网友:动情书生
- 2021-03-22 19:34
_wfopen_s()不是标准C里的函数,只能在windows上用,Linux下没有这个函数。
fopen()你应该很清楚了,就是你传入一个文件名和读写模式,然后它就给你一个FILE*句柄。文件名是char *类型的。
_wfopen_s()跟fopen()有两点区别:
1. _w表示传入的参数是wchar_t *类型的。就是说,你必须传入unicode字符串。在中文操作系统里,日文,韩文或者泰文等非拉丁语系的文字,如果用普通字符串表示,可能会显示成乱码,这个时候你用fopen()函数就没法打开指定的文件。反之,中文在其他语言的操作系统里也有一样问题。而unicode就没有这个问题,所以最好用_w版本的fopen。
2. _s表示该函数是线程安全的。就是说fopen()是非线程安全的,而_wfopen_s()是线程安全的。关于线程安全的定义,你自己用搜索引擎搜一下就知道了。
fopen()你应该很清楚了,就是你传入一个文件名和读写模式,然后它就给你一个FILE*句柄。文件名是char *类型的。
_wfopen_s()跟fopen()有两点区别:
1. _w表示传入的参数是wchar_t *类型的。就是说,你必须传入unicode字符串。在中文操作系统里,日文,韩文或者泰文等非拉丁语系的文字,如果用普通字符串表示,可能会显示成乱码,这个时候你用fopen()函数就没法打开指定的文件。反之,中文在其他语言的操作系统里也有一样问题。而unicode就没有这个问题,所以最好用_w版本的fopen。
2. _s表示该函数是线程安全的。就是说fopen()是非线程安全的,而_wfopen_s()是线程安全的。关于线程安全的定义,你自己用搜索引擎搜一下就知道了。
全部回答
- 1楼网友:等灯
- 2021-03-22 21:42
我建议看看该函数的定义,如果只是个宏的话,那就可以这个“W”和“S”只是为了语义的需要了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯