Pages

Wednesday, May 8, 2013

Perl Error: readdir() attempted on invalid dirhandle

Q. I am seeing "readdir() attempted on invalid dirhandle DIR at" error when attempting to open a directory using readdir function in Perl. How can I resolve this?

The error "readdir() attempted on invalid dirhandle DIR at" clearly states that PERL was unable to open directory by using readdir function. There are number of situations which causes this error

1)Check if user who executed perl script have permissions on that directory or not. User should have read permissions to open a directory in Perl. Check permissions by using ls command.

2)Check if directory exists or not? Sometimes users will forgot to check if directory exists or not before opening a directory. To avoid this we can use below code to check before opening a directory.



opendir DIR, $SRCDIR || die ("Can not open dir $SRCDIR");


Keep this line before readdir function so that it will give you a meaningful error message before reading a directory.

3) Are you reading an input from user? Then make sure that your variable which contain directory name should not contain newline character. So use chop or chomp function to remove last character.

chop($DIR=<>)

This will chop of last character.

Hope this helps someone when dealing with open directory in perl.

Tuesday, May 7, 2013

Solution for: mv: cannot move `' to a subdirectory of itself,

Q. How can I move all my files in my working directory to a sub-directory with the working directory? I am getting error "mv: cannot move `' to a subdirectory of itself," Can I move all the files/folder to sub-directory with out this error?

Yes, you can move all your files/folders present in your directory to a sub-directory with out getting that error. This error will occure when mv command try to move this sub-directory as well which it can not do and throws this error. All you have to do set shopt extglop option and try below command

shopt -s extglob
mv !(subdir) subdir/

Know more about shopt here.

Thats it, you will not see the error as shown above. hope this helps some one.

Thursday, May 2, 2013

isohybrid: Warning: more than 1024 cylinders: isohybrid: Not all BIOSes will be able to boot this devic

Q. I am facing issue "isohybrid: Warning: more than 1024 cylinders:  isohybrid: Not all BIOSes will be able to boot this devic", How can I resolve this?

First this is not an issue or error. This is just a warning not an error and it is just a warnning. This warning will be displayed when you are trying to convert a normal ISO file to hybrid ISO file by using isohybrid command

isohybrid /path/to/normal/iso/file

This error will come when your ISO file is more than 1GB size.