#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 有关,有人可以解释我为什么它不起作用?
非常感谢,