You need to pass an input file to the program for it to do anything. imgconv < command.in See command.in for example. Possible commands in a file are: i [input filename] [output filename] -- convert img2bmp b [input filename] [output filename] -- convert bmp2img q You need to end your file with a q (quit) or it will get stuck in an endless loop.