Subject: | Issues with block and character special device files and with pipes |
Date: | Tue, 3 Jan 2012 15:48:10 -0600 |
To: | "bug-File-Copy-Recursive [...] rt.cpan.org" <bug-File-Copy-Recursive [...] rt.cpan.org> |
From: | "Noeske, Bryon R (Bryon)" <bryon.noeske [...] alcatel-lucent.com> |
When using dirmove, I encounter the following:
if directory contains a block device, dirmove issues error
if directory contains a character device, dirmove issues error
if directory contains a pipe, dirmove hangs (during read)
of course, with "normal" files, all works fine.
I'm wondering if dirmove is expected to work with such device files. I tried with (my) original Recursive.pm and also with the new version. It appears that move() is able to move such files but dirmove() is not able.
Show quoted text
> ls -l
total 64
-r--r--r-- 2 root bin 20143 Jan 3 15:22 Recursive.pm
-rw-r--r-- 1 root root 22545 Jan 3 15:24 Recursive.pm.new
-r--r--r-- 1 root bin 20143 Sep 12 12:44 Recursive.pm.orig
Show quoted text> perl -v
This is perl, v5.8.4 built for x86_64-linux
(with 1 registered patch, see perl -V for more detail)
Show quoted text> perl -V
Summary of my perl5 (revision 5 version 8 subversion 4) configuration:
Platform:
osname=linux, osvers=2.4.20_hhl, archname=x86_64-linux
uname=''
config_args='-de'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='em64t-gcc -g', ccflags ='-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2',
cppflags='-fno-strict-aliasing -I/usr/local/include -I/usr/include/gdbm'
ccversion='', gccversion='3.3.1 (MontaVista 3.3.1-3.0.9.0300452 2003-12-02)', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='em64t-gcc -g', ldflags =' '
libpth=/lib64 /usr/lib64
libs=-lgdbm -ldb -ldl -lm -lc -lcrypt
perllibs=-ldl -lm -lc -lcrypt
libc=/lib64/libc-2.5.90.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.5.90'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fpic', lddlflags='-shared '
Characteristics of this binary (from libperl):
Compile-time options: USE_LARGE_FILES
Locally applied patches:
SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962
Built under linux
Compiled at Mar 25 2010 07:58:26
%ENV:
PERL5LIB=":/flx/lib:/usr/local/lib/perl5/site_perl/5.8.4/x86_64-linux"
@INC:
/flx/lib/5.8.4/x86_64-linux
/flx/lib/5.8.4
/flx/lib
/usr/local/lib/perl5/site_perl/5.8.4/x86_64-linux
/usr/lib64/perl5/5.8.4
/usr/lib/perl5/5.8.4
/usr/local/lib64/perl/5.8.4
/usr/local/lib/perl5/site_perl/5.8.4
/usr/local/lib/perl5/site_perl
.
Show quoted text> uname -a
Linux flx207 2.6.21_mvlcge510-pc_target-x86_em64t-Linux-cge5 #1 SMP PREEMPT RT Mon Nov 28 12:52:07 CST 2011 x86_64 GNU/Linux
Thanks for any and all help!
Bryon