当前位置: 技术问答>linux和unix
mmap出错,不知是什么原因.
来源: 互联网 发布时间:2016-07-17
本文导语: RT...代码如下... code: int pid,fd, *share, i; char ok[2], filename[6]; sprintf(filename, "%d", getpid()); if (fd = open(filename, O_RDWR | O_CREAT, 0664) == -1) ...
RT...代码如下...
code:
错误:No such device
这是问为什么不成功啊,求教,谢谢...
code:
int pid,fd, *share, i;
char ok[2], filename[6];
sprintf(filename, "%d", getpid());
if (fd = open(filename, O_RDWR | O_CREAT, 0664) == -1)
err_sys("creat tmpfile failed");
unlink(filename);
lseek(fd, sizeof(int) - 1, SEEK_SET);
write(fd, "A", 1);
share = (int *)mmap(NULL, sizeof(int), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if (share == MAP_FAILED)
err_sys(" mmap failed");
错误:No such device
这是问为什么不成功啊,求教,谢谢...
|
不加括号,编译器会理解成 if (fd = ( open(filename, O_RDWR | O_CREAT, 0664) == -1) )
如果编译的时候用了gcc -Wall a.c
这里会有一个警告。所以用-Wall是个好习惯。
如果编译的时候用了gcc -Wall a.c
这里会有一个警告。所以用-Wall是个好习惯。