我有一个包含两个进程和两个文件的程序,我想通过共享内存读取第二个文件的代码中的变量,但我只能得到“testing”这个词,而不是文本。以下是程序的第一个文件的代码:
a=shmget(key, 200, 0666|IPC_CREAT);
text=(char *)shmat(a,0,0);
text=&words[0];
if ((P2=fork())==1)
{
perror("fork");
exit(-1);
}
if (P2==0)
{
execl("prog2","prog2",NULL);
}
第二个文件的代码如下:
a=shmget(key, 200, 0666);
text=shmat(a,0,SHM_RDONLY);
printf("testing, %s", text);
有什么想法吗?谢谢。
fork() == -1
不等于 1。 - Duck