0
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/msg.h>
#include<sys/ipc.h>
#include<sys/shm.h>
#include<string.h>
int main(){
    int key=99;
    char a[1000]="ASDASDAS";
    int fd=shmget(key,sizeof(char)*1000,IPC_CREAT|0666);
    char *b=malloc(sizeof(char)*1000);
    b=shmat(fd,NULL,0);
    strcpy(b,"haha");
    //sprintf(b,"aloha!\0");
    if (fork()==0){
        char *c=NULL;
        int fd2=shmget(key,sizeof(char)*100,0);
        c=shmat(fd2,NULL,0);
        printf("ceva%s\n",c);



    }


    return 0;

}

基本上我试图通过共享内存“发送”一个字符串,但我得到一个错误,分段错误,它与指针和我相信的 strcpy 有关,有人可以解释我为什么它不起作用?

非常感谢,

4

0 回答 0