免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1375 | 回复: 4
打印 上一主题 下一主题

请问Linux共享库与文件读写方面的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-20 17:32 |只看该作者 |倒序浏览
今天在设计共享库的读写文件时候,遇到两个奇怪的问题,请好心人帮帮小弟:
有两段代码:

第一段:
FILE *passwd;
passwd = fopen(filename, "w");
        if (!passwd)
        {
                return;
        }
fclose(passwd);

执行到flcose就报段错误。

第二段,读取所有用户信息:
while ((pw = fgetpwent(passwd))!=0)
{
}
当循环读到第二个用户的时候,就挂起了,因为无法调试,perror没有任何信息,估计也是段错误。

两次都是访问的/etc/passwd
感觉是文件描述上出了问题还是怎么地……

请教共享库中文件读写,或者是读写/etc/passwd有没有什么特别之处?郁闷死了……不可能出错的代码,却偏偏出错了……

论坛徽章:
0
2 [报告]
发表于 2006-01-20 17:46 |只看该作者
多贴点代码。。。

论坛徽章:
0
3 [报告]
发表于 2006-01-20 20:06 |只看该作者
是呀要不谁看得懂呀!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2006-01-22 10:17 |只看该作者
SYNOPSIS
       #include <sys/types.h>
       #include <pwd.h>

       struct passwd *getpwnam(const char *name);

       struct passwd *getpwuid(uid_t uid);

       int getpwnam_r(const char *name, struct passwd *pwbuf,
               char *buf, size_t buflen, struct passwd **pwbufp);

       int getpwuid_r(uid_t uid, struct passwd *pwbuf,
               char *buf, size_t buflen, struct passwd **pwbufp);


系统提供调用给用了.最好不要自创一些东西.

论坛徽章:
0
5 [报告]
发表于 2006-01-23 08:51 |只看该作者
原帖由 mq110 于 2006-1-22 10:17 发表
SYNOPSIS
       #include <sys/types.h>
       #include <pwd.h>

       struct passwd *getpwnam(const char *name);

       struct passwd *getpwuid(uid_t uid);

       int getpwna ...


1、是啊,不过我前面那个也是系统自带的,不是自创的,两者功能差不多,感觉getpwnam是一个全局变量,逐个读取,最后关闭,而fgetpwnam是每次打开,一行行读取。

2、我的问题是,在共享库里边,同一个函数里,第二次读写文件或关闭文件描述符时,就会段错误,无解!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP