Maison > Questions et réponses > le corps du texte
J'ai récemment appris le C et j'ai vu que certaines fonctions utilisent bitwise ou bitwise pour transmettre des paramètres. Je ne comprends pas très bien ce que cela signifie, et il semble que les opérations bitwise soient rarement utilisées dans le travail quotidien.
Par exemple, le morceau de code suivant
#define LOCKFILE "/var/run/gwyydaemon.pid"
#define LOCKMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)
fd = open(LOCKFILE,O_RDWR|O_CREAT,LOCKMODE);
Que signifient ici O_RDWR|O_CREAT et S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH
漂亮男人2017-05-16 13:31:54
Vous devez vérifier la documentation vous-même
O_RDWR
: Lisible et inscriptibleO_RDWR
: 可读可写
O_CREAT
: 文件不存在则创建
位或的意思是组合配置,假设(具体值我并不知道):O_RDWR
等于二进制 00000001
O_CREAT
等于二进制 00000010
O_CREAT
: Créez le fichier s'il n'existe pas
O_RDWR
est égal au binaire 00000001
O_CREAT< /code >Égal au binaire 00000010
🎜
🎜Alors la configuration combinée est🎜
00000001 可读写
00000010 创建
-------- 位或
00000011 可读写+创建
répondre0
曾经蜡笔没有小新2017-05-16 13:31:54
Ce ne sont que des opérations de bits
S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH et ainsi de suite doivent être définis dans un certain fichier d'en-tête
Par exemple (la valeur est écrite avec désinvolture par moi, veuillez vérifier ce fichier d'en-tête pour plus de détails, je suis paresseux)
#define S_IROTH 0x01
#define S_IRGRP 0x02
#define S_IWUSR 0x04
#define S_IRUSR 0x08
Attendez.