第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用setrlimit增加Linux中的堆棧大小

使用setrlimit增加Linux中的堆棧大小

素胚勾勒不出你 2019-12-15 16:08:47
在閱讀有關(guān)如何在ggn編譯的c ++應(yīng)用程序中增加堆棧大小的信息時(shí),我了解到可以在程序開(kāi)始時(shí)使用setrlimit完成此操作。但是,我找不到任何成功的示例來(lái)說(shuō)明如何使用它,以及在程序的哪一部分應(yīng)用它以獲得c ++程序的64M堆棧大小,有人可以幫助我嗎?
查看完整描述

3 回答

?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊

通常,您可以main()在調(diào)用任何其他函數(shù)之前,例如在的開(kāi)始處及早設(shè)置堆棧大小。通常,邏輯為:


調(diào)用getrlimit以獲取當(dāng)前堆棧大小

如果當(dāng)前大小<所需的堆棧大小,則

調(diào)用setrlimit以將堆棧大小增加到所需大小

在C語(yǔ)言中,可能會(huì)這樣編碼:


#include <sys/resource.h>

#include <stdio.h>


int main (int argc, char **argv)

{

    const rlim_t kStackSize = 64L * 1024L * 1024L;   // min stack size = 64 Mb

    struct rlimit rl;

    int result;


    result = getrlimit(RLIMIT_STACK, &rl);

    if (result == 0)

    {

        if (rl.rlim_cur < kStackSize)

        {

            rl.rlim_cur = kStackSize;

            result = setrlimit(RLIMIT_STACK, &rl);

            if (result != 0)

            {

                fprintf(stderr, "setrlimit returned result = %d\n", result);

            }

        }

    }


    // ...


    return 0;

}



查看完整回答
反對(duì) 回復(fù) 2019-12-16
?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

要超出setrlimit中的硬限制(在OSX上默認(rèn)只有64MB),請(qǐng)使用具有選擇的堆棧大小的pthreads創(chuàng)建一個(gè)新線程。這是一個(gè)C代碼段:


    // Call function f with a 256MB stack.

    static int bigstack(void *(*f)(void *), void* userdata) {


      pthread_t thread;

      pthread_attr_t attr;


      // allocate a 256MB region for the stack.

      size_t stacksize = 256*1024*1024;

      pthread_attr_init(&attr);

      pthread_attr_setstacksize(&attr, stacksize);


      int rc = pthread_create(&thread, &attr, f, userdata);

      if (rc){

        printf("ERROR: return code from pthread_create() is %d\n", rc);

        return 0;

      }

      pthread_join(thread, NULL);

      return 1;


    }



查看完整回答
反對(duì) 回復(fù) 2019-12-16
  • 3 回答
  • 0 關(guān)注
  • 505 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)