|
|

楼主 |
发表于 2006-11-7 15:16:05
|
显示全部楼层
#include <sys/types.h>
#include <stdio.h>
#include <sys/ipc.h>
#include <sys/shm.h>
int main (int argc,char *argv[])
{
int shm_id;
key_t key;
int size;
char *shm_addr,*head,*ptr,data[64],*str;
size=sizeof (char) * 64;
switch (*argv[1])
{
case 'c':
key = ftok("/work/oo",0);
shm_id = shmget (key,size,IPC_CREAT|0660);
if (shm_id==-1)
{
return (-1);
}
else
printf ("the shm_id is %d\n",shm_id);
break;
case 'r':
printf ("%s\n",data);
break;
case 'w':
shm_addr = shmat (shm_id,0,0);
shm_addr = data;
while(*argv[2]!='\0')
{
*shm_addr = *argv[2];
shm_addr++;
argv[2]++;
}
printf("%s\n",data);
break;
case 'd':
shmctl(shm_id,IPC_RMID,0);
break;
default : printf("error\n");
}
}
我自己写的,为什么字符串存不入共享内存中呢??高手解答下 |
|