みき★さんのコメントに「バッファオーバーフローの脆弱性があります」と。その後、具体的には触れていないので、それくらい自分で調べて対応するようにとの厳しいご指導なのかもしれませんが、参考にされている情報が入門的な場合、そこまで記述がないかも。なので、ヒント的なものを。 バッファオーバー的な対策として、文字列操作系の関数には、_s つきの関数が追加されています。 sprintf()だと、sprintf_s()と言う関数が対応します。 現在は、_s付きの関数を使用する事が推奨されています。 おまけ、argv[0]には、実行したコマンド自体が入っているのでこの様にも。 void usage(char *cmd) { sprintf(STDERR,"usage: %s [-d] <filename>\n", cmd); } main(){ … usage(argv[0]); … }