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
Anda perlu menyemak sendiri dokumentasi
O_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 binari00000001
O_CREATSama dengan binari
00000010
🎜 🎜Maka konfigurasi gabungan ialah🎜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)
Tunggu.