[英]modifying double pointer without memset
char **ARRAY;
char people[4][20];
shmid = shmget (shmkey, sizeof (people), 0644 | IPC_CREAT);
ARRAY = (char**) shmat (shmid, NULL, 0);
memcpy(ARRAY, "BOBBY1", sizeof("BOBBY1"));
memcpy(ARRAY + 20, "BOBBY2", sizeof("BOBBY2"));
memcpy(ARRAY + 2*20, "BOBBY3", sizeof("BOBBY3"));
memcpy(ARRAY + 3*20, "BOBBY4", sizeof("BOBBY4"));
所以我想知道如何在不使用memcpy的情况下修改此数组中的现有字符串?
原因是** ARRAY是进程之间的共享内存,并且我想使用信号量来控制访问(如果我正确理解memcpy,它将允许进程访问当前由a锁定的内存区域。信号)。
C相信您只会做安全的事。 无法使编译器强制执行类似“仅当您持有该信号量时才能访问此块”之类的方法。
您记录所有要求(在源中),然后手动遵守合同。
您为此使用什么功能都没有关系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.