我有一个程序需要在两个进程之间共享一个字符串。我已经声明了一个包含*char
. 这个结构是在主进程被分叉之前shmget
和之前分配的。shmat
typedef struct Queue
{
int index;
char *directory[10];
} Queue;
在其中一个过程中,我尝试设置值:(data->dir_name
是*char
一个字符串,例如“/data1”)
queue->directory[i] = data->dir_name; // Option 1
queue->directory[i] = "foo"; // Option 2
我的问题是,上面的第一个和第二个语句有什么区别?设置queue->directory[i]
to"foo"
时,其他进程会看到它。但是,传递 value data->dir_name
,它没有。
提前致谢!