Membuat Aplikasi Contoh Tunggal dengan C atau C
Untuk memastikan hanya satu contoh aplikasi berjalan serentak, terdapat pelbagai teknik untuk dipertimbangkan . Berikut ialah beberapa pilihan dan kelebihannya:
Kunci Fail:
Satu pendekatan menggunakan penguncian fail. Fail unik dicipta oleh aplikasi, dan apabila ia dilaksanakan, ia memperoleh kunci eksklusif pada fail ini. Jika tika lain cuba dijalankan, ia akan gagal memperoleh kunci, menunjukkan bahawa tika itu sedang berjalan.
Mutex:
Mutex ialah objek penyegerakan yang membenarkan berbilang urutan atau proses untuk mengakses sumber yang dikongsi dengan selamat tanpa konflik. Dalam kes ini, mutex boleh digunakan untuk mengawal akses kepada aplikasi yang sedang berjalan. Apabila tika pertama memperoleh mutex, sebarang kejadian berikutnya akan disekat sehingga mutex dikeluarkan.
Soket Domain Unix:
Membuat dan mengikat soket domain Unix dengan nama unik adalah kaedah lain. Contoh pertama aplikasi berjaya mengikat soket. Apabila tika lain cuba untuk mengikat nama yang sama, ia akan gagal dan boleh menyambung ke soket sedia ada untuk berkomunikasi dengan tika pertama.
Contoh Pelaksanaan:
Ini contoh pelaksanaan menggunakan penguncian fail:
<code class="c">#include <sys/file.h> #include <errno.h> int main() { int pid_file = open("/var/run/my_app.pid", O_CREAT | O_RDWR, 0666); int rc = flock(pid_file, LOCK_EX | LOCK_NB); if (rc) { if (EWOULDBLOCK == errno) { // Another instance is running return 1; } } else { // This is the first instance } // Perform application logic return 0; }</code>
Pendekatan ini memastikan bahawa hanya satu contoh aplikasi sedang berjalan dan mempunyai kelebihan kerana dapat mengendalikan fail pid yang lapuk.
Atas ialah kandungan terperinci Bagaimana untuk Memastikan Hanya Satu Contoh Aplikasi C/C Berjalan Pada Satu Masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!