### cacophonix's blog

By cacophonix, 7 years ago,

You need to include a header file

#include <sys/resource.h>


and in the main() function you need to write these lines

rlimit R;
getrlimit(RLIMIT_STACK, &R);
R.rlim_cur = R.rlim_max;
setrlimit(RLIMIT_STACK, &R);


thanks(not this line).

• +53

 » 7 years ago, # |   0 I don't see any number specifying new stack size. Is it inifinity? Or do I need to write something like: rlimit R = some_value; 
•  » » 7 years ago, # ^ |   +3 This line R.rlim_cur = R.rlim_max; does what you're asking about.Tried printing the value of R.rlim_max and got 18446744073709551615, so yeah it's probably infinity.More info?
•  » » 7 years ago, # ^ |   0 In my machine, the value of R.rlim_max is 4294967295(Byte). So the stack size is 4GB in my machine.
 » 6 years ago, # |   +8 I tried this, but the Codeforces compiler couldn't find the header.program.cpp:50:26: fatal error: sys/resource.h: No such file or directory
•  » » 6 years ago, # ^ |   +6 Because it is not linux. However stack size is large enough on codeforces.
 » 6 years ago, # |   0 I am shocked, Codeforces servers are not linux XD
 » 6 years ago, # |   0 is there any danger of doing it?
•  » » 6 years ago, # ^ |   +2 These calls may be forbidden on some online judges or offline competitions, as they're unusual system calls. So, you theoretically can be disqualified, if jury will think that such calls violate competition rules. From practical point of view, you may bump into compilation error or runtime error (for the same reasons — these calls can be banned).