Apa dan di mana file per setiap socket?
"Segalanya" adalah berlebihan. Ini bukan kebijakan yang ketat, itu hanya praktik umum untuk menggunakan filesystem untuk antarmuka karena akses filesystem identik dengan panggilan sistem (yaitu, filesystem benar-benar antarmuka dengan kernel, dan karenanya memberikan format yang mudah untuk semua jenis hal) . Sistem operasi lain tidak menggunakan ini sebanyak mungkin, sehingga dianggap sebagai fitur yang membedakan.
Seperti Hauke Laging menyebutkan, soket "unix local" memiliki simpul file seperti halnya pipa bernama (lihat man fifo
). Namun, soket protokol internet (digunakan untuk komunikasi jaringan) tidak. Sebagai gantinya, mereka terkait di userspace dengan nomor port. Perhatikan bahwa soket server pada port tunggal menghubungkan beberapa klien masing-masing dengan soketnya masing-masing (satu file soket lokal unix juga dapat digunakan dengan cara ini dengan server, artinya, mungkin ada beberapa soket yang terkait dengan alamat file yang sama) dan dalam kode mereka sebenarnya diidentifikasi secara individual melalui deskriptor file numerik yang terpisah .
Jadi, dalam arti bahwa semua soket yang banyak seperti file, dan memiliki link di /proc/[pid]/fd/
. Anda bahkan dapat memanggil readlink()
inode ini dan mendapatkan semacam nama file khusus, yang digunakan dalam alat-alat baris perintah seperti lsof
, saya percaya; Anda juga dapat memperoleh informasi tentang keterangan soket melalui fstat()
.