我試圖將某些東西移植到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上分配堆棧,系統會自動進行分配。但如果你想要的話,該設施就在那裏。 –