linux - Je regarde certaines fonctions C. Que signifient ces OU au niveau du bit ?
仅有的幸福
仅有的幸福 2017-05-16 13:29:54
0
2
674

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

仅有的幸福
仅有的幸福

répondre à tous(2)
漂亮男人

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

🎜 OU au niveau du bit signifie configuration combinée, en supposant (je ne connais pas la valeur spécifique) :
O_RDWR est égal au binaire 00000001
O_CREATÉgal au binaire 00000010🎜 🎜Alors la configuration combinée est🎜
00000001  可读写
00000010  创建
--------  位或
00000011  可读写+创建
曾经蜡笔没有小新

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal