Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memastikan Hanya Satu Contoh Aplikasi C/C Berjalan Pada Satu Masa?

Bagaimana untuk Memastikan Hanya Satu Contoh Aplikasi C/C Berjalan Pada Satu Masa?

Barbara Streisand
Barbara Streisandasal
2024-11-01 05:28:27413semak imbas

How to Ensure Only One Instance of a C/C   Application Runs at a Time?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn