我试图将某些东西移植到Linux。 我的原代码(对于RTOS)的样子:Linux - 获取线程的堆栈内存的开始和结束
int stackSize = 4*1024;
void* stack = malloc(stackSize);
int thread = create_thread(stack, FuncToRun)
后来栈的stackSize是由垃圾收集器使用,并得到一些线程统计。
现在,我该如何将上面的代码转换为Linux?
我试图将某些东西移植到Linux。 我的原代码(对于RTOS)的样子:Linux - 获取线程的堆栈内存的开始和结束
int stackSize = 4*1024;
void* stack = malloc(stackSize);
int thread = create_thread(stack, FuncToRun)
后来栈的stackSize是由垃圾收集器使用,并得到一些线程统计。
现在,我该如何将上面的代码转换为Linux?
你应该使用的Pthread:
int stackSize = 4*1024;
pthread_attr_t atrib_thread;
pthread_attr_init(&atrib_thread);
pthread_attr_setstacksize(&atrib_thread,stackSize);
pthread_t my_thread;
pthread_create(&my_thread,&atrib_thread,FuncToRun,NULL);
pthread_create的使用与非空属性参数。 –
我的意思是,通常你不需要在Linux上分配堆栈,系统会自动进行分配。但如果你想要的话,该设施就在那里。 –