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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在用GNU編譯器編譯時更改Linux中C+應用程序的堆棧大小

在用GNU編譯器編譯時更改Linux中C+應用程序的堆棧大小

在用GNU編譯器編譯時更改Linux中C+應用程序的堆棧大小在OSX中,在C+程序編譯過程中使用g++我用LD_FLAGS= -Wl,-stack_size,0x100000000但是在SUSE Linux中,我經(jīng)常會遇到這樣的錯誤:x86_64-suse-linux/bin/ld: unrecognized option '--stack'和類似的。我知道可以用ulimit -s unlimited但是這并不是很好,因為單個用戶并不總是能做到這一點。如何在Linux中為單個應用程序增加堆棧大?。?
查看完整描述

3 回答

?
LEATH

TA貢獻1936條經(jīng)驗 獲得超7個贊

可以編程方式將堆棧大小設置為七限,G.

#include <sys/resource.h>int main (int argc, char **argv){
    const rlim_t kStackSize = 16 * 1024 * 1024;   // min stack size = 16 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;}

注意:即使使用此方法來增加堆棧大小,也不應該在main()本身,因為您很可能在輸入時立即得到堆棧溢出。main(),在getrlimit/setrlimit代碼有機會更改堆棧大小。因此,任何大型局部變量都應該只在隨后被調(diào)用的函數(shù)中定義。main(),在成功地增加堆棧大小之后。


查看完整回答
反對 回復 2019-06-26
?
縹緲止盈

TA貢獻2041條經(jīng)驗 獲得超4個贊

而不是stack_size,使用--stack就像這樣:

gcc -Wl,--stack,4194304 -o program program.c

這個例子應該給你4MB的堆??臻g。工作在MinGW的GCC,但如手冊所述,“此選項是特定于i 386 PE目標端口的鏈接器”(即只用于輸出Windows二進制文件)??磥鞥LF二進制文件沒有選擇。


查看完整回答
反對 回復 2019-06-26
  • 3 回答
  • 0 關注
  • 2076 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號