Re: opening things without the O_LARGEFILE flag
- From: xhoster@xxxxxxxxx
- Date: 31 Oct 2006 05:10:59 GMT
"Athanasios" <aduitsis@xxxxxxxxx> wrote:
Hi everyone,
I am trying to open the /dev/net/tun character device with perl.
In C, I would issue:
open("/dev/net/tun", O_RDWR)
and continue as usual.
However, when I try to use sysopen in perl like
sysopen(TUNNELDEV, "/dev/net/tun", O_RDWR);
from the strace (truss) output I can see that instead it tries to do:
open("/dev/net/tun", O_RDWR|O_LARGEFILE)
which for some VERY strange reason succeeds but the file descriptor is
left in a bad state, so it is really unusable. For anything I try to do
afterwards, I get a
EBADFD (File descriptor in bad state).
As I have come down to the systel call level, there is no other reason
for this problem that I can think of except the O_LARGEFILE flag.
Indeed, a simple C program works quite fine without that flag.
Just to make sure it is absolutely nailed down, does the simple C program
stop working fine if you add the O_LARGEFILE in?
I also have tried to use POSIX::open but it still adds the flag.
The documentation clearly states that from perl 5.6 and forth, the
O_LARGEFILE will be used whenever possible. But I really need to bypass
this and generate an open system call without it.
Maybe you could compile perl without large file support?
Or write a small C server that will accept socket connections and
proxy /dev/net/tun over the socket.
Xho
--
-------------------- http://NewsReader.Com/ --------------------
Usenet Newsgroup Service $9.95/Month 30GB
.
- Follow-Ups:
- Re: opening things without the O_LARGEFILE flag
- From: Athanasios
- Re: opening things without the O_LARGEFILE flag
- References:
- opening things without the O_LARGEFILE flag
- From: Athanasios
- opening things without the O_LARGEFILE flag
- Prev by Date: Problem installing ExtUtils::Command from CPAN
- Next by Date: Re: Interesting behaviour with lexical variable
- Previous by thread: Re: opening things without the O_LARGEFILE flag
- Next by thread: Re: opening things without the O_LARGEFILE flag
- Index(es):
Relevant Pages
|