touching named pipe fails

ipif ipif at ymail.com
Wed Apr 8 08:14:05 UTC 2009


I'm working on an embedded sparc system with linux-2.6.21 and uclibc-0.9.30.
When I try to touch a fifo, touch itself stops waiting for data. This is not
the expected behavior, as it should just exit.

hpemini ~ # mkfifo test
hpemini ~ # strace touch test
execve("/bin/touch", ["touch", "test"], [/* 21 vars */]) = 0
gettimeofday({1239112897, 743406}, NULL) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x50006000
stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=64, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
mmap(NULL, 64, PROT_READ, MAP_SHARED, 3, 0) = 0x50007000
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=367844, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x50008000
read(3,
"\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\2\0\0\0\1\0\0\374\224\0\0\0004\0"...,
4096) = 4096
mmap(NULL, 450560, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x50017000
mmap(0x50017000, 352184, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) =
0x50017000
mmap(0x5007e000, 8756, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 0x57000) = 0x5007e000
mmap(0x50081000, 15840, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x50081000
close(3)                                = 0
munmap(0x50008000, 4096)                = 0
munmap(0x50007000, 64)                  = 0
stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=25292, ...}) = 0
mprotect(0x31000, 4096, PROT_READ)      = 0
mprotect(0x5007e000, 4096, PROT_READ)   = 0
mprotect(0x50015000, 4096, PROT_READ)   = 0
ioctl(0, TCSETAF or SNDCTL_TMR_SELECT, {B38400 opost isig icanon echo ...})
= 0
ioctl(1, TCSETAF or SNDCTL_TMR_SELECT, {B38400 opost isig icanon echo ...})
= 0
brk(0)                                  = 0x33000
brk(0x34000)                            = 0x34000
close(0)                                = 0
open("test", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_LARGEFILE, 0666) = -1
ENXIO (No such device or address)
open("test", O_RDWR|O_LARGEFILE)        = 0
fstat64(0, {st_mode=S_IFIFO|0644, st_size=0, ...}) = 0
read(0,  <unfinished ...> 

On my pc (glibc) the last part looks like this:
open("test", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = -1 ENXIO (No such
device or address)
futimesat(AT_FDCWD, "test", NULL)       = 0
close(1)                                = 0
close(2)                                = 0
exit_group(0)   

Thanks for your help!
-jan
-- 
View this message in context: http://www.nabble.com/touching-named-pipe-fails-tp22931878p22931878.html
Sent from the uClibc mailing list archive at Nabble.com.



More information about the uClibc mailing list