2016-07-15 1 views
0

私はeclipseを使用して開発している中規模のプログラムを持っていますが、大きすぎるため内容を表示できません。ある時点で私はfopenのいくつかの行を持っています、私は基本的に新しいファイルを作成し、そのようなファイルの中にいくつかの処理から派生した内容を印刷しようとしています。eclipse cdtを使用してC/C++でファイルを開くことができません

だから私のラインはfilenameが十分に大きいchar配列である古典的な

FILE* f = fopen(filename,"w"); 

のようなものです。しかし、返されるFILE*は0です。errnoを確認すると、番号2となり、ファイルが存在しません。

しかし、それはポイントです、私は新しいファイルを作成しようとしていました。 さらに確認することができる提案がありますか?

私はこの物をWindowsではなくUNIX上で実行しています。

答えて

0

ファイル名が正しくないか、パスにアクセスできないか、パスの一部が存在しない可能性があります。

C:\\Temp\\x.xなどのように、簡単で合理的なパスを最初に試してください。これが動作すれば、あなたのコードではなくファイル名です。

1

filenameの値は絶対パスか相対パスのどちらですか?それが後者の場合、おそらくあなたが実行しているプロセスは、あなたが持っていると思うcwd(現在の作業ディレクトリ)を持っていないでしょう。

  1. それはそれは相対パスでCWDに
+0

を設定するために、メインの開始時のchdirシステムコールを使用し、その後

  • を動作するかどうか、絶対パスを使用してみてください、あなたは何を示唆していますか? – user8469759

  • +0

    私が言ったように、相対パスはプロセスの '現在の作業ディレクトリ'から計算されます。コマンドラインで実行されるプロセスの場合、これは起動時のディレクトリです。環境(Eclipse IDEまたは任意の種類のウィンドウマネージャ)から実行されるプログラムの場合は、それが依存します。 – TheHobbit

    関連する問題