当前位置: 技术问答>linux和unix
关于fopen以及编码的问题
来源: 互联网 发布时间:2016-07-05
本文导语: CSDN里面没有Mac分论坛只能发到比较有关系的Unix板块来了。。 最近要将一个程序移植到Mac上,碰到了一些很郁闷的问题 在Windows平台上执行 fopen("c:XXYY.txt","w");可以正确的在XX目录下创建出YY.txt文件,并读写 但是移植...
CSDN里面没有Mac分论坛只能发到比较有关系的Unix板块来了。。
最近要将一个程序移植到Mac上,碰到了一些很郁闷的问题
在Windows平台上执行 fopen("c:XXYY.txt","w");可以正确的在XX目录下创建出YY.txt文件,并读写
但是移植到Mac上以后,执行fopen("disk0S3:XX:YY.txt","w"),
结果却是在默认路径下直接建立出了一个叫做"disk0S3/XX/YY.txt"的文件
请问fopen在Mac下应该怎么用?
最近要将一个程序移植到Mac上,碰到了一些很郁闷的问题
在Windows平台上执行 fopen("c:XXYY.txt","w");可以正确的在XX目录下创建出YY.txt文件,并读写
但是移植到Mac上以后,执行fopen("disk0S3:XX:YY.txt","w"),
结果却是在默认路径下直接建立出了一个叫做"disk0S3/XX/YY.txt"的文件
请问fopen在Mac下应该怎么用?
|
mac 应该路径应该是这样
filehandle = fopen ("/data/home/file.txt", "r");
用的是正斜杠。
filehandle = fopen ("/data/home/file.txt", "r");
用的是正斜杠。
|
fopen函数用的path是绝对路径,不是你写的那样的相对路径,应该写成:open("/disk0S3/XX/YY.txt","w"), 这样试试,应该是没有问题的
#include
FILE *fopen(const char *path, const char *mode);
FILE *fdopen(int fildes, const char *mode);
FILE *freopen(const char *path, const char *mode, FILE *stream);
有这个你应该会更明白些
#include
FILE *fopen(const char *path, const char *mode);
FILE *fdopen(int fildes, const char *mode);
FILE *freopen(const char *path, const char *mode, FILE *stream);
有这个你应该会更明白些
|
mac os X是基于freebsd的,其文件路径分隔符用/,和所有的UNIX一样。苹果以前用mach的时候,分隔符是:
|
filehandle = fopen ("./data/home/file.txt", "wt");
用wt试试,应该OK
用wt试试,应该OK