免费注册 查看新帖 |

Chinaunix

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

求chmod函数实例讲解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-23 16:52 |只看该作者 |倒序浏览
初学者、刚看UNIX环境高级编程,看不懂这个小程序,
求教!
其中程序中两文件的状态为
bar -rw------
foo -rw-rw-rw
详见 UNIX环境高级编程 程序清单4-4 chmod函数实例

代码如下:
#include "apue.h"
int
main (void)
{
struct stat statbuf;

/* turn on set-group-id and turn off group-execute*/
if(stat("foo", &statbuf) < 0)
         err_sys("stat error for foo");

if(chmod ("foo", (statbuf.st_mode & ~S_IXGRP) | S_ISGID) < 0)
         err_sys("chmod error for foo");

/*set absolute mode to "rw-r--r--"*/
if(chmod("stat", S_IRUSR | S_IWUSR | S_IRGRP | S_IWOTH) < 0)
         err_sys("chmod error for bar");
exit (0);
}

运行程序后两个文件的状态为:
bar  -rw-r--r--
foo -rw-rwSrw-

论坛徽章:
0
2 [报告]
发表于 2011-08-23 17:10 |只看该作者
此图为教程中代码!
求兄长讲解下

360截图20110823165811484.jpg (73.46 KB, 下载次数: 37)

360截图20110823165811484.jpg

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
3 [报告]
发表于 2011-08-23 20:30 |只看该作者
回复 1# toyou234


    什麼地方不懂?

论坛徽章:
0
4 [报告]
发表于 2011-08-23 21:31 |只看该作者
回复 3# MMMIX


    if 语句中是什么意思呀?
例1: if(stat("foo", &statbuf) < 0
  这段中,“&”是什么作用?
例2: if(chmod("foo",(statbuf.st_mode & ~S_IXGRP) | S_ISGID) < 0)
  这段中,(statbuf.st_mode & ~S_IXGRP) | S_ISGID) < 0 是什么意思呀?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
5 [报告]
发表于 2011-08-23 22:01 |只看该作者
回复  MMMIX


    if 语句中是什么意思呀?
例1: if(stat("foo", &statbuf) < 0
  这段中,“&”是 ...
toyou234 发表于 2011-08-23 21:31



    APUE 假設讀者懂 C 語言,所以要看這個的話得先學 C。也就是說你先學學 C 然後再來看它吧。

论坛徽章:
0
6 [报告]
发表于 2011-08-23 23:21 |只看该作者
回复 5# MMMIX


    哦,我还是先学学C,再看这本环境编程吧

论坛徽章:
0
7 [报告]
发表于 2011-08-26 09:10 |只看该作者

论坛徽章:
2
射手座
日期:2014-02-23 22:37:05技术图书徽章
日期:2014-04-26 15:36:27
8 [报告]
发表于 2011-08-26 11:30 |只看该作者
回复 4# toyou234


    取址的意思。  刚学C  不知道回答得对不对

论坛徽章:
0
9 [报告]
发表于 2011-08-26 12:10 |只看该作者
回复 4# toyou234


  告诉你一个速成的方法,看网易公开课的这个视频
  http://v.163.com/special/opencourse/cs50.html
  把C语言相关的那几课看完,你就可以继续读这本APUE了,而且不会在代码方面遇到任何障碍。
  当然我强烈建议你把这个课程全部看完。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP