mmap(): enodev

Pawan Prakash Sharma pawanprakash101 at gmail.com
Sun May 25 09:19:24 EDT 2014


Hi Pietro,

Following line is buggy one

if ((fd = open(FILENAME, O_RDWR) == -1)) <--- here fd will have
Boolean value only

it should be

if ((fd = open(FILENAME, O_RDWR)) == -1)

Check the operator precedence for more clarification. Also I hope the
file you are opening already exists.

Regards,
-Pawan

On Sun, May 25, 2014 at 6:16 PM, Pietro Paolini <P.Paolini at genexis.eu> wrote:
> Hello everyone,
> in order to try to use mmap() to perform IPC I am writing a test program like this :
>
> int main(char **argv, int argn)
> {
>         char *addr;
>         int fd;
>
>         if ((fd = open(FILENAME, O_RDWR) == -1)) {
>                 perror("open:");
>                 exit(1);
>         }
>         addr = mmap(NULL, SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
>         if (addr == MAP_FAILED) {
>                 printf("mmap() : %p %s", addr, strerror(errno));
>                 exit(1);
>         }
>         close(fd);
> ....
>
>
> I am running under
> Linux crunchbang 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64 GNU/Linux
>
> My problem is that everytime I have got an "No such device" error which I don't fully get, could a problem of my platoform
> or am I simply doing something wrong ?
>
> Thanks all,
> Pietro
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



More information about the Kernelnewbies mailing list