getspent、setspent和endspent运行出错
来源:互联网 发布:linux查看文件系统类型 编辑:程序博客网 时间:2024/06/08 19:23
下面这代码本身没有任何问题,只是运行时报了段错误。
13 #include <shadow.h> 22 int main(int argc, char **argv) 23 {199 struct spwd *ptr = NULL;200 char name[] = "jack";201 setspent();202 while ((ptr = getspent()) != NULL)203 if (strcmp(name, ptr->sp_namp) == 0)204 break;205 206 printf("%s %s\n", ptr->sp_namp, ptr->sp_pwdp);207 ptr = getspent();208 endspent();209 printf("%s %s\n", ptr->sp_namp, ptr->sp_pwdp); }
下面是编译执行结果:
jack@jxes-VirtualBox:~/samba_share/apue$ gcc test.c jack@jxes-VirtualBox:~/samba_share/apue$ ./a.out **Segmentation fault (core dumped)**
这三个函数(另外还有一个getspnam),它们操作的对像是/etc/shadow这个file,这个file是一个系统文件,主要用来记录账户名、密文的密码信息,以及有效时间信息,所以要操作这个文件得是root权限,所以上面错误是因为执行a.out需要root权限,在ubuntu下可以用sudo执行root权限。
jack@jxes-VirtualBox:~/samba_share/apue$ gcc test.c jack@jxes-VirtualBox:~/samba_share/apue$ **sudo** ./a.out jack $6$02HyL64f$GKhyMKTwANuwIhwExRnY9Yn1sWDhf5K9ISBq95vqWrhggT7JAe40dFP18qzvYjdT8c7QgwKfCvFJk91qaK73U0vboxadd !
阅读全文
0 0
- getspent、setspent和endspent运行出错
- getspent
- 编译出错和链接出错代替运行出错
- 运行出错,
- Createprocess 函数运行出错的原因和解决办法
- 关于jsonArray 和jsonobject 在servlet中运行出错问题;
- 宁可编译和链接时出错,也不要运行时出错
- 条款 46: 宁可编译和链接时出错,也不要运行时出错
- 宁可编译和链接时出错,也不要运行时出错
- 运行amfphp范例出错
- 为什么运行出错
- 运行Ogre Demo出错
- 运行出错(数组问题)
- 运行flex debug出错
- strongswan 运行出错
- 运行项目出错
- UltraEdit,运行出错~
- opencv 程序运行出错。
- 机器学习业务实践之路
- 单精度和高精度乘法
- 欢迎使用CSDN-markdown编辑器
- oracle触发器
- 3-4 计算长方形的周长和面积 sdut-oj
- getspent、setspent和endspent运行出错
- 自定义view解锁
- swipeRefreshLayout 上拉加载 下拉刷新
- Objective-C知识汇总
- 测试去空格
- h5 加载图片后显示的代码分析
- Android OpenGL 显示基本图形及相关概念解读
- POI读取execl的工具类:ExcelReader(解析Excel的工具类)
- Unity世界坐标转为画布坐标