linux下的内存共享,大家看看我哪里错误了
****************写入内存*************************
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/types.h>
#include <unistd.h>
main(int argc, char *argv[])
{
char buf[1024];
int shm_id;
int *shm;
char *shm_ch;
key_t key;
char *name='/dev/shm/myshm';
memset(argv[1],'\0',1024);
menset(buf,'\0',1024);
key=ftor(name,0);
shm_id=shmget(key,1024,IPC_CREAT);
if(shm==-1)
{
print("error \n");
return 0;
}
else
{
shm = shmat(shm_id,0,0); //强制转换
if( shm < 0 ){
printf( "shmat(key=%d) \n",key );
return ;
}
shm_ch = (char *)shm;
strncpy(shm_ch,argv[1],1024);
}
return 0
}
***************************读取内存**************************
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/types.h>
#include <unistd.h>
main(int argc, char *argv[])
{
char buf[1024];
int shm_id;
int *shm;
char *shm_ch;
key_t key;
char *name='/dev/shm/myshm';
memset(argv[1],'\0',1024);
menset(buf,'\0',1024);
key=ftor(name,0);
shm_id=shmget(key,1024,IPC_CREAT);
if(shm==-1)
{
print("error \n");
return 0;
}
else
{
shm = shmat(shm_id,0,0); //强制转换
if( shm < 0 ){
printf( "shmat(key=%d) \n",key );
return ;
}
shm_ch = (char *)shm;
printf("shmat is %s \n",shm_ch);
}
return 0
}