求解答啊!!!
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <string.h>
#include <stdlib.h>
#define NAME "/tmp/lhb/myshm"
int main(int argc,char *argv[])
{
int shmid;
key_t key;
char *w_addr;
key = ftok(NAME,'a');
if(key == -1)
{
printf("key erro\n");
}
printf("key = %d\n",key);
if(argc != 2)
{
printf("argv erro\n");
}
shmid = shmget(key,1024,O_RDWR);
printf("shmid = %d\n",shmid);
if(shmid == -1)
{
printf("shmget erro\n");
exit(-1);
}
w_addr = shmat(shmid,0,0);
memset(w_addr,0,sizeof(w_addr));
write(w_addr,argv[1],1024);
exit(0);
}
这是创建一个write的共享内存,为什么shmget的返回值会是 -1 ???难道是哪里出错了??? gcc编译又不会报错啊。。。
#include <errno.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <string.h>
#include <stdlib.h>
#define NAME "/tmp/lhb/myshm"
int main(int argc,char *argv[])
{
int shmid;
key_t key;
char *w_addr;
key = ftok(NAME,'a');
if(key == -1)
{
printf("key erro\n");
}
printf("key = %d\n",key);
if(argc != 2)
{
printf("argv erro\n");
}
shmid = shmget(key,1024,O_RDWR);
printf("shmid = %d\n",shmid);
if(shmid == -1)
{
printf("shmget erro\n");
exit(-1);
}
w_addr = shmat(shmid,0,0);
memset(w_addr,0,sizeof(w_addr));
write(w_addr,argv[1],1024);
exit(0);
}
这是创建一个write的共享内存,为什么shmget的返回值会是 -1 ???难道是哪里出错了??? gcc编译又不会报错啊。。。
...全文
相关推荐
什么是模式?什么是框架?为你详细解答,come on!!!
什么是模式?什么是框架?为你详细解答,come on!!!
初中物理课后习题解答2 对于将课后习题解答作为辅助学习资料的人来说,这个资料是蛮实用的!!!
对于将课后习题解答作为辅助学习资料的人来说,这个资料是蛮实用的!!!
初中英语课后习题解答3 对于将课后习题解答作为辅助学习资料的人来说,这个资料是蛮实用的!!!
对于将课后习题解答作为辅助学习资料的人来说,这个资料是蛮实用的!!!
半导体物理习题解答——还有习题!!!
半导体物理习题解答,有需要的同学可以下下来看看!!!!
数学建模第三版课后习题解答
鉴于许多人需要找一份数学建模课后习题解答的资料,于是本人上传这本书以供和大家分享。希望大家学业有成!!!


UNIX文化
