Sobes.tech
Junior — Middle

Πώς καθορίζεται το προεπιλεγμένο μέγεθος της στοίβας διαδικασίας στο σύστημα Linux;

sobes.tech AI

Απάντηση από AI

Στο Linux, το προεπιλεγμένο μέγεθος της στοίβας της διαδικασίας μπορεί να ελεγχθεί με την εντολή ulimit -s, η οποία εμφανίζει το μέγεθος της στοίβας σε χιλιόμπιτ. Επίσης, σε ένα πρόγραμμα C/C++ μπορεί να ληφθεί αυτό το μέγεθος μέσω της κλήσης συστήματος getrlimit με την παράμετρο RLIMIT_STACK.

Παράδειγμα σε C:

#include <stdio.h>
#include <sys/resource.h>

int main() {
    struct rlimit rl;
    if (getrlimit(RLIMIT_STACK, &rl) == 0) {
        printf("Μέγεθος στοίβας: %ld bytes\n", rl.rlim_cur);
    } else {
        perror("getrlimit");
    }
    return 0;
}

Η τιμή rlim_cur είναι το τρέχον όριο του μεγέθους της στοίβας σε bytes.