Ich lerne kürzlich C und habe gesehen, dass einige Funktionen bitweise oder bitweise Parameterübergaben verwenden. Ich verstehe nicht ganz, was das bedeutet, und es scheint, dass bitweise Operationen in der täglichen Arbeit selten verwendet werden.
Zum Beispiel der folgende Codeabschnitt
#define LOCKFILE "/var/run/gwyydaemon.pid"
#define LOCKMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)
fd = open(LOCKFILE,O_RDWR|O_CREAT,LOCKMODE);
Was bedeuten O_RDWR|O_CREAT und S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH hier?
这个需要自己去查文档
O_RDWR
: 可读可写O_CREAT
: 文件不存在则创建位或的意思是组合配置,假设(具体值我并不知道):
O_RDWR
等于二进制00000001
O_CREAT
等于二进制00000010
那么组合出来的配置就是
就是位运算啊
S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH 等等应该在某头文件中定义了
比如 (值是我随便写的,具体请查看那个头文件,我偷个懒)
等。