सी में थ्रेड एट्रिब्यूट का स्टैक आकार प्राप्त करने और सेट करने के लिए, हम निम्नलिखित थ्रेड विशेषताओं का उपयोग करते हैं:
pthread_attr_getstacksize()
थ्रेड स्टैक आकार प्राप्त करने के लिए उपयोग करें। स्टैकसाइज़ विशेषता थ्रेड स्टैक को आवंटित न्यूनतम स्टैक आकार देती है। एक सफल रन के मामले में, यह 0 देता है अन्यथा कोई मूल्य देता है।
इसमें दो तर्क लगते हैं -
pthread_attr_getstacksize(pthread_attr_t *attr, size_t *stacksize)
- पथ्रेड विशेषता के लिए पहला।
- थ्रेड एट्रिब्यूट का आकार देने के लिए दूसरा।
pthread_attr_setstacksize()
नए थ्रेड्स स्टैक आकार सेट करने के लिए उपयोग किया जाता है। स्टैकसाइज़ विशेषता थ्रेड स्टैक को आवंटित न्यूनतम स्टैक आकार देती है। एक सफल रन के मामले में, यह 0 देता है अन्यथा यह कोई मूल्य देता है।
इसमें दो तर्क लगते हैं -
pthread_attr_setstacksize(pthread_attr_t *attr, size_t *stacksize)
- पथ्रेड विशेषता के लिए पहला।
- नए स्टैक का आकार बाइट्स में देने के लिए दूसरा।
एल्गोरिदम
Begin Declare stack size and declare pthread attribute a. Gets the current stacksize by pthread_attr_getstacksize() and print it. Set the new stack size by pthread_attr_setstacksize() and get the stack size pthread_attr_getstacksize() and print it. End
उदाहरण कोड
#include <stdio.h> #include <stdlib.h> #include <pthread.h> int main() { size_t stacksize; pthread_attr_t a; pthread_attr_getstacksize(&a, &stacksize); printf("Current stack size = %d\n", stacksize); pthread_attr_setstacksize(&a, 67626); pthread_attr_getstacksize(&a, &stacksize); printf("New stack size= %d\n", stacksize); return 0; }
आउटपुट
Current stack size = 50 New stack size= 67626