当前位置:  技术问答>linux和unix

谁能解释下这个符号的含义?和对应的语句

    来源: 互联网  发布时间:2015-10-26

    本文导语:  在看和chmod()有关的函数 想自己弄个设定文件开启时间的函数,但下面的不明白,有谁能解释下? ~符号是什么意思? #define ALL_MODES       0006777 /* all bits for user, group and others */ /* The following names are synony...

在看和chmod()有关的函数 想自己弄个设定文件开启时间的函数,但下面的不明白,有谁能解释下?
~符号是什么意思?
#define ALL_MODES       0006777 /* all bits for user, group and others */
/* The following names are synonyms for the variables in the input message. */
。。。。。
#define mode          m.m3_i2 
这里的m.m3_i2 是如何定义的?它应该是定义文件是700 还是777什么的
发现定义
#define m3_i2  m_u.m_m3.m3i2

for e.g
#define ALL_MODES       0006777 /* all bits for user, group and others */
/* The following names are synonyms for the variables in the input message. */
。。。。。
#define mode          m.m3_i2 //found

#define m3_i2  m_u.m_m3.m3i2 //try to understand this defind
found:
typedef struct { 
int m_source;                 /* who sent the message */ 03137   int m_type;                   /* what kind of message is it */ 03138   union { 
mess_1 m_m1;
mess_2 m_m2;
mess_3 m_m3;
mess_4 m_m4;
mess_5 m_m5;
} m_u; 
} message;
found:

typedef struct {int m1i1, m1i2, m1i3; char *m1p1, *m1p2, *m1p3;} mess_1; 
typedef struct {int m2i1, m2i2, m2i3; long m2l1, m2l2; char *m2p1;} mess_2;
typedef struct {int m3i1, m3i2; char *m3p1; char m3ca1[M3_STRING];} mess_3;
typedef struct {long m4l1, m4l2, m4l3, m4l4, m4l5;} mess_4;
typedef struct {char m5c1, m5c2; int m5i1, m5i2; long m5l1, m5l2, m5l3;}mess_5; 
typedef struct {int m6i1, m6i2, m6i3; long m6l1; sighandler_t m6f1;} mess_6;

但我不知道m.m3_i2 到底 怎么组成的,我只知道它是INT但为什么是m_u.m_m3.m3i2 而不是 m_u.m_m3.m3i1 同样是INT?而且m_m1 and m_m2 ..m_m6之间什么关系?
下面一句什么意思,特别是rip->i_mode & ~ALL_MODES 部分,什么是~ALL_MODES?
 rip->i_mode = (rip->i_mode & ~ALL_MODES) | (mode & ALL_MODES);

|
#define其实就是进行字符替换,如果看不清楚,你把所有define的东西都用实际的内容替换也许就比较容易看懂意思了。

struct里边即使同一种类型(比如int)的参数,定义者想让他们传递的意义一般也是不同的(比如:一个int传序号,一个int传重复次数等)。

各个message之间的关系要看具体的应用,光这点代码恐怕很难解释,除非有谁已经看过完整的代码。

~就是取反的意思。~ALL_MODES也就是将0006777按位取反。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 5、 在shell的命令解释中,默认的系统标准流有哪些?它们与系统中的设备是如何对应的?
  • C++ STL Bitsets构造函数及成员函数解释及代码示例
  • classpath里的.;到底有什么用?能解释解释吗?
  • CentOS安装Telnet,以root用户登陆Telnet以及CentOS的各种终端解释
  • 请问java的xml解释器有哪些?怎么能在applet里用这些解释器?
  • 大虾们给我解释解释这个输出问题。这里小弟先谢了。
  • 实在是不能理解,谁能帮我解释解释!
  • 能不能帮我解释解释什么是EJB?
  • 关于"symbol lookup error"问题的诡异现象,高手帮忙解释解释
  • alex 解释器 alexinterpreter
  • 地震解释软件系统 OpendTect
  • 请教高人来解释一下小弟关于poll()函数的疑惑
  • Java源代码解释器 Beanshell
  • 这个"."怎么解释?
  • 高手帮忙解释
  • 请详细解释javamail里的“收件人类型”的CC,TO,BCC的意义???
  • linux中/dev下都是些什么文件啊?大侠们谁可以帮我解释一下?
  • 多线程的例子。但是不知道为什么看不懂。唉,笨:(各们帮帮忙了给我解释解释
  • 数字电视CA卡解释模块 OSCam
  • markdonw解释器 sundown
  • Brainfuck编译器和JIT解释器 bfc
  • Scheme Lisp 解释器 Subs


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3