>>333
printf("%s\n",argv[1]);
でも入れてみてfilename.ppmがきちんと表示されれば、
argvが問題じゃないことはわかる。