From: Reinhard N. <rn...@gm...> - 2002-03-26 09:24:41
|
Hi, Geert Uytterhoeven wrote: > > On Fri, 22 Mar 2002, Reinhard Nissl wrote: > > Geert Uytterhoeven wrote: > > > On Fri, 22 Mar 2002, Reinhard Nissl wrote: > > > > Geert Uytterhoeven wrote: > > > > > On Fri, 22 Mar 2002, Reinhard Nissl wrote: > > > > > > On the other hand: what's wrong in seeking beyond EOF? > > > > > > > > > > Sorry, I don't understand what you mean here. > > > > > > > > fd = open( "/dev/port", O_RDWR ) > > > > lseek( fd, 0x64, 0 ); > > > > > > > > The call to open() succeeds, as there exists /dev/port. Why doesn't lseek() > > > > simply return an error value instead of causing a signal 11? > > > > > > I don't think it causes signal 11 in the lseek, but in the read/write phase. > > > > Going back some mails ago, there is: > > > > > > > Call backtrace: > > > > > C0035C60 C0003E7C 01800B2C 016DBA08 00000000 > > > > ^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^ > > > > > > sys_lseek, ret_from_syscall_1 > > > > So, sys_lseek calls read_port and causes a signal 11. > > Strange, from looking at the sources, I don't see how sys_lseek() can cause > read_port() to be called. You are right, strace comes to the same conclusion. sys_lseek() is ok, read_port() fails. How is it, that the "call backtrace" shows the last call? Bye. -- Dipl.-Inform. (FH) Reinhard Nissl mailto:rn...@gm... |