LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 796|回复: 6

调用fopen()函数的困惑

[复制链接]
发表于 2005-2-22 17:42:47 | 显示全部楼层 |阅读模式
个位DX:我现在要对一定目录下的文件进行操作。使用函数fopen()函数,我想要作的事情是在/usr/src/mime下以“w+”方式打开一个文件*.xml,写成这样的形式:fp =fopen ("/usr/share/mime/x.xml","w+"); 其中*.xml是文件名,xml是后缀;如果是个常量如const,则是const.xml;但是现在关键是"*"是个变量,如x等,若按上面方式打开,会出错,因为它在双引号里,所以就成了变量。请问,在这里怎么写,才能使fp =fopen ("/usr/share/mime/*.xml","w+")中的x仍然表示变量?谢谢答复!
发表于 2005-2-22 18:05:42 | 显示全部楼层
char buf [256];
sprintf (buf, "/usr/share/mime/%s.xml", "你想要的文件名");
fp = fopen...
把buf开大点,并且改用snprintf可能更好些。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-23 09:53:47 | 显示全部楼层
Post by efan
char buf [256];
sprintf (buf, "/usr/share/mime/%s.xml", "你想要的文件名");
fp = fopen...
把buf开大点,并且改用snprintf可能更好些。

请问efan:sprintf()与printf()函数都是格式化输出,不同之处是前者将按格式化规定的内容写入buf 字符串数组
中, 返回值等于写入的字符个数。 对于你说的方法,能不能说具体点,我还是不太明白。"你想要的文件名"项应该是返回字符个数的这个量啊?
回复 支持 反对

使用道具 举报

发表于 2005-2-23 10:05:30 | 显示全部楼层
楼主不是说文件名是个变量吗?我的意思就是利用sprintf,产生文件名buf。
比如x是一个字符串,表示你想要的文件名。
sprintf (buf, "/usr/share/mime/%s.xml", x);
fp = fopen (buf, "w+");
回复 支持 反对

使用道具 举报

发表于 2005-2-23 10:09:10 | 显示全部楼层
又是个英文中文都没有学好的!
http://www.linuxsir.cn/bbs/showthread.php?t=177607
回复 支持 反对

使用道具 举报

发表于 2005-2-26 14:05:41 | 显示全部楼层
用opendir, readdir, closedir对目录下面的文件进行访问. 想打开哪个就打开哪个(除了. 和..).
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-3 10:57:37 | 显示全部楼层
efan,我明白了你。谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表