Membuat Aplikasi Contoh Tunggal dalam C atau C
Pengenalan:
Memastikan hanya satu contoh aplikasi berjalan serentak adalah penting dalam pelbagai senario. Artikel ini meneroka kaedah untuk mencapai aplikasi contoh tunggal dalam C atau C .
Kunci Fail:
Kunci fail boleh digunakan pada fail tertentu. Jika kunci diperolehi, hanya proses pegangan boleh mengakses fail. Ini boleh digunakan untuk menghalang berbilang kejadian aplikasi daripada dijalankan.
<code class="c">#include <sys/file.h> int fd = open("lockfile", O_RDWR | O_CREAT); int res = flock(fd, LOCK_EX | LOCK_NB);</code>
Mutexes:
Mutexes digunakan untuk penyegerakan. Mutex boleh diperolehi oleh satu urutan, menghalang urutan lain daripada mengakses sumber kongsi sehingga mutex dikeluarkan.
<code class="c">#include <pthread.h> pthread_mutex_t mutex; pthread_mutex_init(&mutex, NULL); pthread_mutex_lock(&mutex); // Critical section pthread_mutex_unlock(&mutex);</code>
Pendekatan Disyorkan:
Pendekatan biasa adalah untuk mencipta pidfile, fail yang mengandungi ID proses aplikasi yang sedang berjalan. Jika pidfile sudah wujud, ia menunjukkan bahawa satu lagi contoh aplikasi sedang berjalan. Kaedah ini, walau bagaimanapun, mempunyai had kerana fail pid yang lapuk.
Kaedah Lanjutan:
Kaedah yang lebih maju termasuk menggunakan soket domain Unix atau pengecam unik untuk memastikan satu contoh. Soket domain Unix boleh diikat pada nama tertentu dan hanya contoh pertama aplikasi boleh diikat dengan jayanya. Pengecam unik boleh dijana dan disimpan dalam segmen memori kongsi untuk pengesahan.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Aplikasi Satu Instance dalam C atau C : Kunci Fail, Mutexes dan Beyond?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!