• 締切済み

rename関数で名前の変更が出来なくなりました

こんにちは。 C言語でHTMLのひな形を作ってHTMLを作っています。今回、少しC言語のソースを買えただけでC言語のrename関数が失敗するようになってしまいました。 バレが怖いので下記しか書けません。質問なのに申し訳ございません。 if (rename("after_oomoto.txt", html_name)==0){ printf("htmlファイル名変換完了\n"); }else{ printf("htmlファイル名変換不可\n"); printf("レビューファイルがキチンと作成されていない可能性があります。処理を終了します。\n"); system("pause"); // return; } ちなみにhtml_nameは改行とnull文字は付いていません。また、ファイル名にutf-8やshift-jisがあるのかも知りません。 こんな少ない情報ですが、どなたかアドバイス頂けないでしょうか。 よろしくお願いいたします。

みんなの回答

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.3

>ちなみにhtml_nameは改行とnull文字は付いていません。 改行文字はともかくhtml_nameはNUL文字終端になっていないということですか? >また、ファイル名にutf-8やshift-jisがあるのかも知りません。 「知りません」ではなく「知ろうとしてない」だけですね。 VisualStudioには立派なドキュメントがありますし。 >バレが怖いので下記しか書けません。質問なのに申し訳ございません 「バレ」って何?

shoshin01
質問者

お礼

ご回答ありがとうございました。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

環境くらいは書かれた方が…。 errnoに何か設定されていませんか? http://msdn.microsoft.com/ja-jp/library/zw5t957f.aspx

shoshin01
質問者

お礼

ご回答ありがとうございます。 環境のこと申し訳ございませんでした。 windows7 x64 visual studio 2013です。 こんな戻り値があったのですね、とても勉強になりました。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

> 少しC言語のソースを買えただけでC言語のrename関数が失敗するようになってしまいました ということは、そこの原因があるのでは? 変更前がどうで、変更後がどうで、その変更は「正しい」もので ということが確認できなければ、なんとも言えません。 例えば、その変更に間違いがあって、html_nameの内容を書きかえてしまっていて、不正なファイル名になってしまっている、とか。

shoshin01
質問者

お礼

ご回答ありがとうございます。 >そこの原因があるのでは? まさしくその通りだと思うのですが…。 少しやってみます。

専門家に質問してみよう