掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.27279

別のディレクトリのファイルをopenする
投稿者---武(2006/06/21 22:01:01)


os WINDOWSXP
コンパイラ Cygwin

/homeというディレクトリから(ここにコンパイルしたcプログラムのexeファイルを置きます)、/binというディレクトリにあるファイルをオープンするためにはopen()を使ってどのように記述すればよいのでしょうか。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:別のディレクトリのファイルをopenする 27280 επιστημη 2006/06/21 22:34:15
<子記事> Re:別のディレクトリのファイルをopenする 27300 あかま 2006/06/22 14:19:34


No.27280

Re:別のディレクトリのファイルをopenする
投稿者---επιστημη(2006/06/21 22:34:15)



>/homeというディレクトリから(ここにコンパイルしたcプログラムのexeファイルを置きます)、/binというディレクトリにあるファイルをオープンするためにはopen()を使ってどのように記述すればよいのでしょうか。

open("/bin/なにか");



この投稿にコメントする

削除パスワード

No.27282

Re:別のディレクトリのファイルをopenする
投稿者---武(2006/06/21 22:59:13)


すいません。言葉足らずでした。
fstreamクラスのopenメンバー関数ではなくてunistdクラスの
open("test.txt", O_RDONLY);
とか
open("test.txt", O_RDONLY, S_IRUSR);
というような形式の場合はどうすればいいのでしょうか?


この投稿にコメントする

削除パスワード

No.27283

Re:別のディレクトリのファイルをopenする
投稿者---もぐりん(2006/06/21 23:28:19)


>すいません。言葉足らずでした。
>fstreamクラスのopenメンバー関数ではなくてunistdクラスの
>open("test.txt", O_RDONLY);
>とか
>open("test.txt", O_RDONLY, S_IRUSR);
>というような形式の場合はどうすればいいのでしょうか?

open("/bin/test.txt", O_RDONLY, S_IRUSR);

などと絶対パスで書けばいいのでは?



この投稿にコメントする

削除パスワード

No.27284

Re:別のディレクトリのファイルをopenする
投稿者---武(2006/06/21 23:35:30)


>open("/bin/test.txt", O_RDONLY, S_IRUSR);
>
>などと絶対パスで書けばいいのでは?

やってみたのですがうまくいきません。
環境変数をいじるとかの方法も考えたのですが、やり方が良くわかりません。




この投稿にコメントする

削除パスワード

No.27285

Re:別のディレクトリのファイルをopenする
投稿者---επιστημη(2006/06/22 00:24:03)


>>open("/bin/test.txt", O_RDONLY, S_IRUSR);
> ...
>やってみたのですがうまくいきません。

なにが/どう"うまくいきません"か?
説明を惜しまないでください。




この投稿にコメントする

削除パスワード

No.27286

Re:別のディレクトリのファイルをopenする
投稿者---武(2006/06/22 09:31:37)


int a;
a = open("/bin/test.txt", O_RDONLY, S_IRUSR);
printf("%d\n", a)
のようにしてaの値を得て、その値を確かめると、-1になっていました。
なのでopenできていないのだと思います。



この投稿にコメントする

削除パスワード

No.27287

Re:別のディレクトリのファイルをopenする
投稿者---Blue(2006/06/22 09:39:15)


ディレクトリ構成は実際どうなっているのでしょうか?

└home
   ├○○○.exe
   └bin
      └test.txt


という構成ならば、
> open("/bin/test.txt", O_RDONLY, S_IRUSR);
でOKのはずです。

そうではなく
├home
│ └○○○.exe
└bin
   └test.txt

のようになっていると、当然失敗します。


この投稿にコメントする

削除パスワード

No.27288

Re:別のディレクトリのファイルをopenする
投稿者---武(2006/06/22 10:02:42)


├home
│ └○○○.exe
└bin
└test.txt

すいません。こっちのほうです。
この場合はどうすればいいのでしょうか?


この投稿にコメントする

削除パスワード

No.27289

Re:別のディレクトリのファイルをopenする
投稿者---Blue(2006/06/22 10:10:24)


Linux用ですが

絶対パスと相対パス
http://www.linux-adventure.net/linux/two_path.htm
を参考にしてみてください。
※■「.」「..」のところを理解できれば解決します。


この投稿にコメントする

削除パスワード

No.27290

Re:別のディレクトリのファイルをopenする
投稿者---REE(2006/06/22 10:46:16)


>ディレクトリ構成は実際どうなっているのでしょうか?
>
>
└home
   ├○○○.exe
   └bin
      └test.txt

>
>という構成ならば、
>> open("/bin/test.txt", O_RDONLY, S_IRUSR);
>でOKのはずです。
>
>そうではなく
>
├home
│ └○○○.exe
└bin
   └test.txt

>のようになっていると、当然失敗します。

/で始まっていますので、むしろ逆な気が・・・
上は "/home/bin/test.txt"では?



この投稿にコメントする

削除パスワード

No.27291

Re:別のディレクトリのファイルをopenする
投稿者---Blue(2006/06/22 10:59:09)


>/で始まっていますので、むしろ逆な気が・・・
>上は "/home/bin/test.txt"では?
そうですね、間違っていましたね。"./bin/test.txt"と勘違いしました。
homeやbinがどこにあるディレクトリなのかで、
"/" から始まるのパスでいけるのかどうなのかはっきりするんでしょうけど。
(とりあえず、"/bin/test.txt"で失敗するということはルートの下(?)にはないということだけがわかる。)




この投稿にコメントする

削除パスワード

No.27300

Re:別のディレクトリのファイルをopenする
投稿者---あかま(2006/06/22 14:19:34)


パーミッションは確認しました?
cygwinだとどうなってるのかわかりませんが。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧