recherche

Maison  >  Questions et réponses  >  le corps du texte

linux - Je regarde certaines fonctions C. Que signifient ces OU au niveau du bit ?

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

仅有的幸福仅有的幸福2738 Il y a quelques jours666

répondre à tous(2)je répondrai

  • 漂亮男人

    漂亮男人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

    🎜 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< /code >Égal au binaire 00000010🎜 🎜Alors la configuration combinée est🎜
    00000001  可读写
    00000010  创建
    --------  位或
    00000011  可读写+创建

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新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.

    répondre
    0
  • Annulerrépondre