ฉันพยายาม จำกัด การใช้หน่วยความจำของกระบวนการโดยใช้ ulimit
ulimit -Sv 100000
ulimit -St 10
fakechroot ./compiledfile
ฉันใช้คำสั่งใน terminal เดียวกัน (ฉันใช้ Ubuntu 16.04) และรหัสแหล่งรวบรวมไฟล์เป็น
#include<stdio.h>
int main()
{
while(1)
{
malloc(110000000);
pf("allocated : %d\n",i);
}
return 0;
}
กระบวนการควรจะสิ้นสุดลงเนื่องจากข้อ จำกัด ของหน่วยความจำ .. แต่มันจะทำงานจนถึงจุดสิ้นสุด timelimit ฉันไม่เข้าใจว่าทำไม ฉันเป็นสามเณรให้อภัยฉันหากคำถามนั้นเป็นเรื่องไร้สาระ…ความช่วยเหลือหรือคำแนะนำใด ๆ ที่ได้รับการชื่นชม .. ขอบคุณ
@ โจ P ฉันได้ลองโดยไม่ต้อง fakechroot (./compiledfile) bt ไม่มีการเปลี่ยนแปลง
—
mursalin
malloc
คุณควรตรวจสอบค่าตอบแทนของ มันจะกลับมาNULL
เมื่อการจัดสรรล้มเหลวเนื่องจากขีด จำกัด หน่วยความจำหรือเหตุผลอื่น
fakechroot
สร้างกระบวนการใหม่หรือไม่ulimit
ส่งผลกระทบต่อกระบวนการปัจจุบันเท่านั้น คุณสามารถลองเรียกใช้สคริปต์ด้วยulimit
และ./compiledfile
ภายในของคุณfakechroot