"Martin v. Löwis" wrote: > Neal Becker wrote: >> Any ideas? I'd rather not have to trace through python if I could avoid >> it (I don't even have source installed here). > > Use strace, then. Find out what precise system call gives you this > error. If this is not enough clue, post the relevant fragment of the > trace output. Usage would be > > strace -o muell python test_notify.py > (look into the file muell afterwards) >
Yes, tried that- learned nothing. I suspect what's happening is that python's fdopen is using some stat call to determine whether the file descriptor refers to a directory, and is getting an answer that the inotify fd does. Don't know what to do about it. Can I build a python file object in "C" from the fd? Here's strace. The write of '4' is where my code writes the value of fileno() to stdout, which is '4', which is correct - notice that open("test-inotify.py") returned '3': ... open("test-inotify.py", O_RDONLY) = 3 write(2, " File \"test-inotify.py\", line 6"..., 39) = 39 fstat(3, {st_mode=S_IFREG|0664, st_size=87, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaaadc13000 read(3, "from inotify import *\nimport os\n"..., 4096) = 87 write(2, " ", 4) = 4 write(2, "os.fdopen (i.fileno())\n", 23) = 23 close(3) = 0 munmap(0x2aaaadc13000, 4096) = 0 write(2, "IOError", 7) = 7 write(2, ": ", 2) = 2 write(2, "[Errno 21] Is a directory", 25) = 25 _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com