On Thu, Jun 9, 2011 at 22:48, Chuck Forsberg WA7KGX N2469R <caf(a)omen.com> wrote:
The standard IO freopen function stopped working on or about
the time I installed 64 bit Fedora 15 on the
omen.com server.
The attached program is derived from the 1977 Bill Joy version.
It does not display any text when compiled and run under 64 bit
F 15 clean install and updated as of today.
The workaround is to rewrite the program to eliminate the use
of freopen.
Looking at an strace is interesting:
Working RHEL-4 (ancietn I know)
close(0) = 0
close(0) = -1 EBADF (Bad file descriptor)
open("oldhead.c", O_RDONLY) = 0
fstat64(0, {st_mode=S_IFREG|0664, st_size=1867, ...}) = 0
fstat64(0, {st_mode=S_IFREG|0664, st_size=1867, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7f66000
read(0, "#ifndef\tlint\nstatic char *sccsid"..., 4096) = 1867
write(1, "#ifndef\tlint\n", 13#ifndef lint
) = 13
exit_group(0) = ?
Not working F15
close(0) = 0
open("oldhead.c", O_RDONLY) = 0
dup3(0, 0, 0) = -1 EINVAL (Invalid argument)
close(0) = 0
fstat(0, 0x7fff53f398a0) = -1 EBADF (Bad file descriptor)
fstat(0, 0x7fff53f376f0) = -1 EBADF (Bad file descriptor)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x7fdac28e2000
read(0, 0x7fdac28e2000, 8192) = -1 EBADF (Bad file descriptor)
write(1, "\n", 1
) = 1
so it looks like the ordering is off.
1) In the working, it closes(0) twice then opens the file.
2) In the F15, it closes(0), opens file to 0, then closes0) and then
the accesses afterwords don't work.
So commenting out the close(0) that is explicite in the code makes it
work. So somehow code is not running in the order it is expected.
--
Chuck Forsberg WA7KGX N2469R caf(a)omen.com
www.omen.com
Developer of Industrial ZMODEM(Tm) for Embedded Applications
Omen Technology Inc "The High Reliability Software"
10255 NW Old Cornelius Pass Portland OR 97231 503-614-0430
--
test mailing list
test(a)lists.fedoraproject.org
To unsubscribe:
https://admin.fedoraproject.org/mailman/listinfo/test
--
Stephen J Smoogen.
"The core skill of innovators is error recovery, not failure avoidance."
Randy Nelson, President of Pixar University.
"Let us be kind, one to another, for most of us are fighting a hard
battle." -- Ian MacLaren