Pertanyaan yang diberi tag «system-calls»

Pertanyaan mengenai perincian tentang bagaimana suatu program menggunakan panggilan sistem untuk berinteraksi dengan API kernel, panggilan apa yang tersedia, cara kerjanya, dll.


2
Apa perbedaan antara fork () dan vfork ()?
Saya ingin memahami secara detail perbedaan antara fork () dan vfork (). Saya tidak dapat mencerna halaman manual sepenuhnya. Saya juga ingin mengklarifikasi komentar salah satu kolega saya " Di Linux saat ini, tidak ada vfork (), bahkan jika Anda menyebutnya, secara internal ia akan memanggil fork () ."



2
Mengapa tidak ada syscall penyisipan file
Untuk pemahaman saya, untuk memanipulasi file hanya ada sys_write syscall di Linux, yang menimpa konten file (atau memperluasnya, jika pada akhirnya). Mengapa tidak ada syscalls untuk menyisipkan atau menghapus konten dalam file di Linux? Karena semua sistem file saat ini tidak memerlukan file untuk disimpan dalam blok memori berkelanjutan, implementasi …




1
Apa gunanya "argumen ajaib" dalam panggilan sistem reboot Linux?
Ketika saya membaca kode sumber Linux, dan lebih khusus lagi kode panggilan sistem, saya menemukan sys_rebootimplementasi: http://lxr.free-electrons.com/source/kernel/reboot.c#L199 . 199 SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd, 200 void __user *, arg) 201 { 202 ... ... 286 } Di tengah, ada potongan kode khusus ini: 209 210 /* For …

1
Mengapa rmdir dan membatalkan tautan dua panggilan sistem yang terpisah?
Inilah sesuatu yang membuat saya bertanya-tanya untuk sementara waktu: [15:40:50][/tmp]$ mkdir a [15:40:52][/tmp]$ strace rmdir a execve("/usr/bin/rmdir", ["rmdir", "a"], [/* 78 vars */]) = 0 brk(0) = 0x11bb000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff3772c3000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 …

4
Kapan harus memanggil fork () dan exec () sendiri?
Saya belajar tentang perintah fork () dan exec (). Sepertinya fork () dan exec () biasanya dipanggil bersama. (fork () membuat proses anak baru, dan exec () menggantikan gambar proses saat ini dengan yang baru.) Namun, dalam skenario apa Anda dapat memanggil masing-masing fungsi sendiri? Apakah ada skenario seperti ini?


2
File mana di kernel yang menentukan fork (), vfork () ... untuk menggunakan sys_clone () system call
Ketika ltrace digunakan untuk melacak panggilan sistem, saya bisa melihat bahwa fork () menggunakan sys_clone () daripada sys_fork (). Tapi saya tidak bisa menemukan sumber linux di mana ia didefinisikan. Program saya adalah #include<stdio.h> main() { int pid,i=0,j=0; pid=fork(); if(pid==0) printf("\nI am child\n"); else printf("\nI am parent\n"); } Dan output …


1
Untuk apa saya seharusnya menggunakan `O_PATH`, dan bagaimana?
Saya menggunakan distribusi berbasis Linux 4.x, dan saya baru-baru ini memperhatikan open()system call kernel mendukung O_PATHflag terbuka. Sementara manhalaman untuk itu memang memiliki daftar panggilan sistem yang secara teori dapat digunakan, saya tidak begitu mengerti apa idenya. Apakah saya open(O_PATH)hanya direktori, bukan file? Dan jika saya melakukannya, mengapa saya ingin …

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.