Saya menemukan solusi yang berfungsi. File inti sekarang sedang dibuat.
struct rlimit core_limit;
core_limit.rlim_cur = RLIM_INFINITY;
core_limit.rlim_max = RLIM_INFINITY;
if (setrlimit(RLIMIT_CORE, &core_limit) < 0)
fprintf(stderr, "setrlimit: %s\nWarning: core dumps may be truncated or non-existant\n", strerror(errno));
Kredit diberikan di sini:http://adamrosenfield.com/blog/2010/04/23/dumping-core/
jika Anda ingin memeriksa batas Anda saat ini untuk proses Anda dari
struct rlimit v; //you can decelare any variable
getrlimit(RLIMIT_CORE, &v);
printf("softlimit=%d hardlimit=%d \n",v.rlim_cur,v.rlim_max);
jika Anda ingin menetapkan batas baru daripada menggunakan kode di bawah ini
///////////////////// tetapkan batas ////////////////////////// ///
mari membuatnya sederhana
struct rlimit v;
v.rlim_cur = 0 ; //if you do not want the core dump file
/* v.rlim_cur=RLIM_INFINITY; //set maximum soft limit of the file(unlimited) */
v.rlim_max = RLIM_INFINITY; //for reference to the soft limit(unlimited)
setrlimit(RLIMIT_CORE, &v);
Nilai rlim_cur
adalah antara 0 dan tak terhingga berarti core dump akan dihasilkan dan dipotong ke ukuran yang ditentukan. Ini berisiko membuat core dump yang tidak lengkap
Abaikan huruf besar-kecil di glob() di Linux
Deteksi otomatis ketersediaan tampilan dengan matplotlib