cari

Rumah  >  Soal Jawab  >  teks badan

linux - Saya sedang melihat beberapa fungsi C Apakah maksud OR bitwise ini?

Saya sedang belajar C baru-baru ini, dan saya melihat bahawa sesetengah fungsi menggunakan bitwise atau bitwise untuk menghantar parameter. Saya tidak begitu faham maksudnya, dan nampaknya operasi bitwise jarang digunakan dalam kerja harian.

Sebagai contoh, sekeping kod berikut

#define LOCKFILE "/var/run/gwyydaemon.pid"

#define LOCKMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)
 fd = open(LOCKFILE,O_RDWR|O_CREAT,LOCKMODE);

Apakah maksud O_RDWR|O_CREAT dan S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH di sini

仅有的幸福仅有的幸福2738 hari yang lalu667

membalas semua(2)saya akan balas

  • 漂亮男人

    漂亮男人2017-05-16 13:31:54

    Anda perlu menyemak sendiri dokumentasi

    • O_RDWR: Boleh dibaca dan boleh ditulisO_RDWR: 可读可写

    • O_CREAT : 文件不存在则创建

    位或的意思是组合配置,假设(具体值我并不知道):
    O_RDWR 等于二进制 00000001
    O_CREAT 等于二进制 00000010

  • O_CREAT : Cipta fail jika ia tidak wujud

    🎜Bitwise ATAU bermaksud konfigurasi gabungan, dengan andaian (saya tidak tahu nilai khusus):
    O_RDWR adalah sama dengan binari 00000001
    O_CREAT< /code >Sama dengan binari 00000010🎜 🎜Maka konfigurasi gabungan ialah🎜
    00000001  可读写
    00000010  创建
    --------  位或
    00000011  可读写+创建

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:31:54

    Ia hanya operasi kecil
    S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH dan seterusnya harus ditakrifkan dalam fail pengepala tertentu
    Sebagai contoh (nilai ditulis secara santai oleh saya, sila semak fail pengepala itu untuk mendapatkan butiran, saya malas)

    #define S_IROTH 0x01
    #define S_IRGRP 0x02
    #define S_IWUSR 0x04
    #define S_IRUSR 0x08

    Tunggu.

    balas
    0
  • Batalbalas