fopen();の引数(ファイルパス)について – プログラミング – Home

fopen();の引数(ファイルパス)...
 
通知
すべてクリア

[解決済] fopen();の引数(ファイルパス)について


みかん
 みかん
(@みかん)
ゲスト
結合: 16年前
投稿: 12
Topic starter  

fileの読み書きにつかうfopen();のファイルパスの指定方法について質問です。
ネットワーク上にあるファイルに書き込みをしたいと考えているのですが、
(仮にhttp://.../test.cにあるとします。)
このtest.cを読み込みたい場合、
fopen(http://.../test.c);
としても上手くいきませんでした。
fopen();ではネットワーク上のファイルの読み書きはできないのでしょうか?

よろしくお願い致します。


引用未解決
トピックタグ
みかん
 みかん
(@みかん)
ゲスト
結合: 16年前
投稿: 12
Topic starter  

× fopen(http://.../test.c);
○ fopen(http://.../test.c, r);

の間違いでした。失礼しました。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

> fopen();ではネットワーク上のファイルの読み書きはできないのでしょうか?

ファイル共有によるものならば読み書きできますが、http は無理です。


返信引用
みかん
 みかん
(@みかん)
ゲスト
結合: 16年前
投稿: 12
Topic starter  

わかりました。
確かにhttpはブラウザ表示しているだけで実際そこにファイルがあるわけではないです
よね…。
ありがとうございました。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

実際そこにファイルがあるかどうかは無関係です。
ブラウザだって、実際存在するファイルを表示する場合もあれば、ファイルとして存在し
ていないデータを表示する場合もあります。

この問題の原因はそこではなくて、Windows においては fopen が間接的に呼び出してい
る Windows API である CreateFile が、パスとして http://~ を受け付けるようにでき
ていないという点にあります。
それは Windows の事情ですから、C の言語規格としては、fopen に URI を渡すことを特
に禁止してはいないと思います。
許容する処理系があってもいいんじゃないでしょうか。望みは薄いですが。


返信引用
dogatana
 dogatana
(@dogatana)
ゲスト
結合: 16年前
投稿: 4
 

解決済みになっていますが、URLで指定されるファイルを読み出すのであれば、
WinInetライブラリを使用する方法はどうですか。
関数名だけ挙げると次の流れになります。
InternetOpen()
InternetOpenUrl()
InternetReadFile()
InternetCloseHandle()
InternetCloseHandle()
詳しくは検索で・・・


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました