小编sou*_*yar的帖子

溢出堆栈与巨大的局部变量?

据说每个过程都有8 mb的堆栈.该堆栈将用于存储局部变量.所以如果我的数组大小超过堆栈,它必须溢出?

 int main()
{
int arr[88388608];
int arr1[88388608];
int arr2[88388608];
while(1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

但我无法得到结果!

c linux

5
推荐指数
1
解决办法
116
查看次数

何时以及如何创建进程控制块

#include <stdio.h>

int main(void)
{
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

何时以及如何为上述程序创建进程控制块?

例如,在上述程序进入运行状态之前,内核必须为此进程分配一块pcb。

我在哪里可以找到对内核进行的各种启动系统调用,以便我可以将这些调用跟踪到内核中。

我在上面的程序上运行了一个 strace,但我无法得到它。

execve("./a.out", ["./a.out"], [/* 42 vars */]) = 0
brk(0)                                  = 0x9aaf000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or      directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb78df000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=112037, ...}) = 0
mmap2(NULL, 112037, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb78c3000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such …
Run Code Online (Sandbox Code Playgroud)

c linux assembly

5
推荐指数
1
解决办法
624
查看次数

标签 统计

c ×2

linux ×2

assembly ×1