- ベストアンサー
C言語(gcc), Linux, FTPプログラミング
C言語でFTPを使用してあるサーバからデータをダウンロードするプログラムを作りたいのですが、短期間で作らなければならない為、なるべく作り込みはしたくないのです。 FTPを扱うライブラリのようなものがあるのが一番ありがたいのですが、ご存じないでしょうか? 条件としては ・gccのバージョン3~4ぐらいで使えること。 ・Solaris,RedHatなど主要なLinuxで使えること。 ・ライセンスの制限がなるべく無いこと。 以上、よろしくお願いいたします。
- OllllllllllllllO
- お礼率68% (15/22)
- C・C++・C#
- 回答数4
- ありがとう数0
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> FTPでアップロードは出来るという記述はあったのですが 私は逆にget出来る、の記述しか見つけられませんでした。 http://www.libcurl.org/ より: > libcurl is a free, open source client to get documents/files from servers, using any of the supported protocols. 対応プロトコルの数を考えるとちとftp専用としてはサイズが大きそうな気はしますが、簡単に使えそうではありますね。
その他の回答 (3)
- xyz951
- ベストアンサー率18% (15/79)
>C言語でFTPを使用してあるサーバからデータをダウンロードするプログラムを作りたいのですが これだけの処理ならCなど使わずに シェルスクリプトでftpやwgetでできそうですけど そうすれば >Solaris,RedHatなど主要な も気にする必要もないし >gccのバージョン3~4ぐらいで使えること も気にする必要がないですけど とりあえず http://www.google.co.jp/search?hl=ja&safe=off&q=FTP+C%E8%A8%80%E8%AA%9E&lr= の http://x68000.q-e-d.net/~68user/net/c-ftp-1.html ググった結果最初に引っかかったページ。
補足
正確にはプログラムのほとんどは既に出来ていて、FTPでデータを取ってくる処理だけ作らないといけないのです。 FTPでデータを取って来る前、取ってきた後の処理は他の人が作ったものが既にあります。
- D-Matsu
- ベストアンサー率45% (1080/2394)
SolarisはUNIXであってLinuxじゃありません、というのはさておいて。 libOftpというモノがあるようです。(1.0 Stableで開発終わってるようですが) http://sourceforge.net/projects/libftp/ ただし使えるかどうかはやってみないとわかりません。 ライセンスはCDDL/GPLのデュアルライセンスのようです。 >#1 ログインの必要がないとこだけならsystem()でwget投げるってのは案外いいアイディアじゃないですか?
補足
>SolarisはUNIXであってLinuxじゃありません 失礼しました。 libftp検討してみます。 調べていてlibcurlというのを見かけたのですが、これは使えないでしょうか? FTPでアップロードは出来るという記述はあったのですがダウンロードが出来るとは書いてありませんでした。
関連するQ&A
- Linuxで、標準Cライブラリが読み込まれず、C言語プログラミングができません・・・
僕の問題はタイトルの通りで、標準Cライブラリが読み込まれていないようで、C言語プログラミングができません。 ubuntuのオフィシャルから日本語ローカライズドDesktopCDをダウンロードして、空のHDDにインストールしました。 ですが、gnome-terminalからccコマンドでプログラムをコンパイルしても、標準Cライブラリにあるはずの<stdio.h>が認識されず、続くprinft関数も読んでくれません。 これはどうしてでしょうか?LinuxはデフォルトでCやらJAVAやらのプログラミングの環境が整っているものだと思っていたので、戸惑っています。何か、セットアップが必要なのでしょうか。 ちなみに、gccでも、標準ライブラリは読み込まれませんでした。
- ベストアンサー
- Linux系OS
- C言語で作ったらWindowsでもMacでもLinuxでも動くんですか?
Linuxでgccを使ってC言語を勉強してます。 Linuxのgccでコンパイルして作ったプログラムはWindowsでもMacでも動くんでしょうか? 逆にWindowsで作ったのはとか、Macで作ったのは他のOSで動くんだろうかと疑問で・・・。 教えてください!!
- ベストアンサー
- C・C++・C#
- gccのバージョンアップ
OSはSolaris7でgccのバージョンが2.95.3です。 訳あってgccのバージョンアップをしなくてはいけないのですが、 gccの3.3.2あたりのソースファイルを普通にインストール して問題はでないでしょうか? ライブラリ環境等に影響がでそうで・・・・・ 最悪はufsdumpを取得後ためせば良いのですが、 外部公開しているwebサーバですのでおいそれとは シングルにできなくてこまっています。 よろしくおねがいします。
- 締切済み
- Solaris系OS
- unix-c と linux-c の違いは?
以前unix-cの仕事をしていましたが今度linux-cの仕事をすることに なりました。 以前:unix(solaris)C言語 今回:linux(redhat)C言語 この2つの大きいな違い等がありましたらおしえてください。
- ベストアンサー
- C・C++・C#
- Linux+GCCで、ソケットプログラム
お世話になっております。 Linux<-->Win間で、データ送受信するプログラムを作りたいと思っています。 現在は、Win<-->Win間でWinSockを使ったプログラムがほぼ完成していますが、次の方向性としてLinux<-->Win間ソケットプログラムなのです。将来的には、組み込みPCとしてつかいたいのです。 DOSの頃(8年前くらい)にC言語はやっていたので、C言語は多少は覚えていますが、Linuxを使った事が無い、GCCの経験が無いので、OSの選択やGCC(特にソケット)に関する勉強をしなければなりません。 そこで、こういったジャンルを勉強できる本を探しているのですが、皆さんのお勧めは無いでしょうか?
- 締切済み
- C・C++・C#
- C言語 Linux Mac
Mac Linux C言語 MacでLinuxをダウンロードするにはどうすれば良いのでしょうか? (種類が多くて困っています) 今日C言語を主に扱う会社に面接に行ってきて、帰り際に「Linux上で動くC言語のMACアドレスを検知するプログラムを一週間後までに作ってきてくれ」と頼まれました。 OSとしてはMacを使っていて、まずはLinuxをダウンロードしたいのですが種類が多すぎて選べません。 Linux上で動くC言語のプログラムを作りたい場合どのLinuxの種類をダウンロードするのが適切でしょうか? Web系(HTML,CSS,JavaScript)の職業訓練を半年受けていたので本当に基本的な事はわかってると思うのですが VirtualBoxでLinuxをダウンロードする際「Download VirtualBox for Linux Hosts」まで行くのはわかるのですが、その後種類が多く困っています。 どれをダウンロードするのが適切でしょうか?(画像の画面の場合です。)
- ベストアンサー
- Linux系OS
- LinuxをFTPからDLしたいのですが
RedHatとTurboのLinuxをFTPからDLしたいのですが、標準的な(これからLinuxの勉強を始める程度)インストールにどのファイルが必要なのか良く分かりません。Turboの方はなんとなく分かったような気がするのですが、RHの方はさっぱりです。入門書に付いてきた"FTP版"CDとも見比べてみたのですが、よく分かりませんでした。x86で、できればワークステーションとサーバの両方について教えていただけるとありがたいです。
- 締切済み
- その他(OS)
- C言語のHP-UXからLinuxへのポーティング
C言語で開発されたプログラムをHP-UXからLinuxへのポーティングする場合、どのように行えば効率的でしょうか? また、注意する内容があれば教えて頂けないでしょうか? ポーティング前のOSはHP-UX(詳細不明) ポーティング後のOSはRedHat Enterprise Linux 5.5 (64bit) C言語で開発されたプログラムは、ソケット通信でサーバ間通信を行う機能となります
- ベストアンサー
- C・C++・C#
- Redhat Linux 8
今Redhat Linux 7.2を使っています。Linuxの雑誌で2枚のRedHat Linux 7.2、FTP版のCDROMが付いたものでした。新しいRedhat Linux 8にアップグレードしたいですが(発表したばかりなので、かなりダウンロードサーバが混んでいます)、今まで、サーバからダウンロードして、インストールすることが経験がないものです。最初は、WindowsXP上でFTPソフトを使って、Redhat Linux 8のインストールCDらを全部ダウンロードした(インターネットはADSLです)。後は、ISOフォーマットを解凍し、各ファイルをCDRWにコピーした(利用ソフトはB\'s Recorder GoldとCDRWドライブはTDK CDRW)。最後にそのCDRWらを使って、インストールすると思ったが、しかし、パソコンを起動して、Redhat Linux 7.2で、そのWindowsXP上でコピーしたCDRWが認識しなかって、アップグレードできなかったのです。Redhat Linuxをダウンロードし、インストールした経験者から教えて頂きたいのです。 もう一つの問題はRedhat Linux 7.2上で、CDRWを利用できますか?
- 締切済み
- その他(OS)
- h8300-linux-elf-gccで指定可能な配列の大きさ
AKI-H8/3069Fを使ってプログラムのC言語による組込ソフトの勉強をしています。そこで、教えていただきたいのですが、配列の大きさの上限値はいくつなのでしょうか? 例えば、unsigned int char a[1025];としてもコンパイル時にエラーが出なければ大丈夫なのでしょうか? 参考にしているのは、書籍『はじめる組込みLinux』です。そして、そのサポートサイトからダウンロードしたGCCコンパイラ(h8300-linux-elf-gcc)を使用しています。
- 締切済み
- C・C++・C#
補足
libcurlでFTPダウンロード出来ることを確認しました。 ありがとうございました。 struct FtpInfo{ const char *fname; FILE *stream; }; size_t ftpWriteFunc(void *buf, size_t size, size_t nmemb, void *stream) { struct FtpInfo *f; f = (struct FtpInfo *)stream; if(f && !f->stream){ f->stream = fopen(f->fname, "wb"); if(!f->stream){ return(-1); } } return(fwrite(buf, size, nmemb, f->stream)); } : : CURL *c; struct FtpInfo f; f.stream = NULL; /* 初期処理 */ curl_global_init(CURL_GLOBAL_DEFAULT); c = curl_easy_init(); /* 詳細表示 */ curl_easy_setopt(c, CURLOPT_VERBOSE, 1); /* 設定 */ sprintf(buf, "%s:%s", username, password); curl_easy_setopt(c, CURLOPT_USERPWD, buf); sprintf(buf, "ftp://%s/%s/%s", servername, filepath, filename); curl_easy_setopt(c, CURLOPT_URL, buf); curl_easy_setopt(c, CURLOPT_WRITEFUNCTION, ftpWriteFunc); curl_easy_setopt(c, CURLOPT_WRITEDATA, &f); /* FTPでデータ取得 */ cret = curl_easy_perform(c); /* 終了処理 */ curl_easy_cleanup(c);