in reply to Re: copy - Inappropriate ioctl for device
in thread copy - Inappropriate ioctl for device

Hi,

Thank you all for the reply, i have re wrote my code, this whole code is embed in some big function, source file size is too large , may be this is the issue, (For info, this code works for small files, or make explicitly run) even after using die, or the code with strict and warnings, i am unable to get out of " Inappropriate ioctl for device ", hence closing the thread. Finally i am using this code for copying files

$ret_value=system("copy \"$source\" \"$target\""); if($ret_value ne 0) { open(FAIL,">>failed_copy_$channel"); print FAIL"FAILED TO Copy \"$target\" WITH FROM \"$target_input_fi +le\" +....\n"; close(FAIL); }

This works fine if used explicitly or used inside any program, or used to copy large files (more than 1MB also)

Thank you all for your support,
ShekarKCB

Replies are listed 'Best First'.
Re^3: copy - Inappropriate ioctl for device
by Anonymous Monk on Feb 12, 2009 at 08:13 UTC
    ...strict and warnings, i am unable to get out of " Inappropriate ioctl for device "...
    Your mistake was checking $! when you weren't supposed to.

    Do not use $! to determine if a failure occured.

    perlvar says the value of $! is meaningful only immediately after a failure:

    if (open(FH, $filename)) { # Here $! is meaningless. ... } else { # ONLY here is $! meaningful. ... # Already here $! might be meaningless. } # Since here we might have either success or failure, # here $! is meaningless.