小编qiu*_*qiu的帖子

printf 在共享内存中做了什么

#define _GNU_SOURCE  
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void func();
void main(int argc,char **argv)
{
    printf("i am main\n");
    int clone_flag,arg,retval;
    char *stack;
    clone_flag=CLONE_VM|CLONE_SIGHAND;
    stack=(char*)malloc(4096);
    retval=clone((void*)func,&(stack[4095]),clone_flag,NULL);
    stack=(char*)malloc(4096);
    retval=clone((void*)func,&(stack[4095]),clone_flag,NULL); 
}
void func()
{
    int i;
    for(i=0;i<3;i++)
    {
    printf("i: %d\n ",i);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

i am main
i: 0   
i: 1
Run Code Online (Sandbox Code Playgroud)

strace-f

5915  fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 1), ...}) = 0
5915  ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
5915  brk(NULL)                         = 0xaf2000
5915  brk(0xb14000)                     = 0xb14000
5915  write(1, …
Run Code Online (Sandbox Code Playgroud)

c linux printf multithreading clone

2
推荐指数
1
解决办法
430
查看次数

标签 统计

c ×1

clone ×1

linux ×1

multithreading ×1

printf ×1