GCCにてディレクトリ・ファイル操作等のPGを作成したい
- GCCコンパイラを使い、UNIX上のディレクトリ・ファイルの操作を行うPGの作成方法
- ディレクトリの移動、ファイル・サブディレクトリ一覧の取得、ファイル日付の取得、ディスク空き容量等の確認、ファイルの削除などの処理を実行する関数を探しています
- GCCを使ったUNIXシステム管理プログラミングについて解説されている書籍・サイトを知りたいです
- ベストアンサー
GCCにてディレクトリ・ファイル操作等のできるPGを作成したい。
GCCコンパイラを使い、UNIX上のディレクトリ・ファイルの操作 また、各ファイルシステムの総容量・空容量等の確認を行いたいと思っ ているのですが、以下の処理を実行する関数を見つけることができませ んでした。 ----------------------------------------------------------------------------- ディレクトリの移動 (chdir コマンド相当) ディレクトリ内のファイル・サブディレクトリ一覧の取得 (dir/ls コマンド相当) ファイル日付の取得 (ls -l コマンド相当) ディスク空き容量等確認 (df -k コマンド相当) ファイルの削除 (rm コマンド相当) ----------------------------------------------------------------------------- もし、ご存知の方がいらっいましたら、教えて頂きたく存じます。 また、GCCを使ったUNIXシステム管理プログラミングについて、解説されている 書籍・サイト等を御存知でしたら教えていただきたく思います。
- hamanyan
- お礼率0% (0/7)
- C・C++・C#
- 回答数3
- ありがとう数0
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> ディレクトリの移動 (chdir コマンド相当) chdir() > ディレクトリ内のファイル・サブディレクトリ一覧の取得 (dir/ls コマンド相当) opendir()、readdir()、closedir() > ファイル日付の取得 (ls -l コマンド相当) stat() > ディスク空き容量等確認 (df -k コマンド相当) 知りません。popen("df -k") で代用?? > ファイルの削除 (rm コマンド相当) remove() 細かい使い方は、man で参照してください。 > もし、ご存知の方がいらっいましたら、教えて頂きたく存じます。 > また、GCCを使ったUNIXシステム管理プログラミングについて、解説されている > 書籍・サイト等を御存知でしたら教えていただきたく思います。 C 言語でシステム管理というのは、あまり聞いたことないですね。 シェルスクリプトでできないことなんですか?
その他の回答 (2)
- terra5
- ベストアンサー率34% (574/1662)
あるコマンドと同じことをやるなら、 コマンドのソースを読むのが早道かと。 LinuxでもFreeBSDでもソースがいくらでもありますから。 とうぜん、GCCでコンパイルするようになってますし。 後は,manで調べていけば。
- natural
- ベストアンサー率37% (419/1115)
迷ったのですが、まだ回答が付いていないようですので・・・。 ご質問の処理はCやC++で作成しなければならないのでしょうか? もし選択の余地があるのならシェルスクリプトではどうかと思います。 基本的にコマンド類はそのまま組み込めますし、構文とフィルタコマンドを使用すれば特定の部分を抜き出して処理させることも容易です。 弱点はインタープリタとして動作しますのでCに比べて処理速度が落ちるという点です。 重い処理をさせたり、特別速度を求めるのでなければお勧めです。
関連するQ&A
- ディレクトリとファイル
UNIXではディレクトリもファイルの一種であるかのように扱われていますが、その利点は何でしょうか? lsコマンドで一括表示されることしか思いつきません。どなたかご教授お願いします。
- ベストアンサー
- Linux系OS
- 初心者ですが。ディレクトリの削除
unixであるディレクトリ以下のファイルを全て削除したい場合はどのコマンドを使えばいいですか?rm -rf ディレクトリ名すると、1つ1つ削除するか確認を求めてきます。この確認を省く方法はありますでしょうか。宜しくお願いします。
- ベストアンサー
- その他(OS)
- ディレクトリ一覧を表示
unix環境で、ディレクトリやファイル一覧を表示するコマンドは「ls」ですが、 windows環境の「tree」コマンドのような視覚的に見やすく出力されるコマンドは ありませんか? また、lsコマンドではファイルも出力されますが、ディレクトリ構成だけの一覧を 出力する方法ってありますか?オプションを見てもちょっと無さそうなのですが・・
- 締切済み
- Linux系OS
- UNIXで、ディレクトリを比較して、ファイル・ディレクトリの存在を比較したい
やりたいこと自体は単純なことなのですが・・ UNIXのコマンドで、 2つのディレクトリA、Bを比較して、 Aだけにあるディレクトリ・ファイルのみを取得できるようなものを教えてください。 (ファイルが同一かどうかは問題ではなくて、あくまでも存在不存在の比較です。) コマンドを組み合わせたり、オプションを使ってもかまいません。 diffコマンドってこういうとき使えないのでしょうか。
- ベストアンサー
- その他(OS)
- 所有者不明のディレクトリやファイル
度々すみません、 Linuxで所有者が不明で、lsコマンドの表示で ユーザーがuidで表示されているファイルがあるとします。 特定のディレクトリ配下の それらファイルを全て洗い出したいのですが、 コマンドで取得は可能でしょうか?。 uidが特定できていれば、以下のようなコマンドで 確認は可能かと思いますが、 ・UID:500 のファイル・ディレクトリの一覧表示 $ find /usr -uid 500 -print 現状は、500以外にも該当のuidがあると思われ、 洗い出したいと思っております。 アドバイスを頂けると助かります。
- ベストアンサー
- Linux系OS
- ディスクの空き容量を取得するシステム関数はありますか?
ディスクの空き容量を取得するシステム関数はありますか? dfコマンドで、ディスクの空き容量を取得できますが、 このdfコマンドに相当するシステム関数はありますでしょうか? やりたいことは、例えば、/etc/varのディレクトリの空き容量がどれくらいあるかを取得したい ということです。 dfコマンドにより上記は、実現出来ますが、直接C言語から呼び出すことが可能なシステム関数があれば と思い質問しました。 上記に該当するシステム関数がない場合はsystem関数を使用してdfを実行する予定ですが、それは最後の手段と考えています。 OSはintel版solarisで使用する予定ですが、linux前提でもかまいません。
- ベストアンサー
- C・C++・C#
- findで7日前のディレクトリを検知、そのディレクトリを消したい。
findオプションで質問です。 7日以前のディレクトリ/ファイルを検索して消したいです。 find ~ -mtime +7 -type -df -exec rm -df {} なんて感じで宜しいのでしょうか。 -df というように、ディレクトリ/ファイルを両方いっぺんに 指定できますか? 宜しくお願いいたします。
- ベストアンサー
- Linux系OS
- 名前の無いディレクトリが作成され削除できません・・・・・
他サーバからFTPでputを実行した際だと思うのですが put ファイル名を間違えてしまいそのまま実行してしまいました・・・ put先のSUNサーバへ戻り、lsで確認した際 名前のないディレクトリが作成されていました。 このディレクトリの削除法を御教授御願い致します。 rm -rf* ですと他のディレクトリも削除してしまいます。 rm -irfでそのディレクトリをyesにするのも良いのかもとも思っています。 名前の無いディレクトリ1個を一発100%で消せる方法を 御教授御願いします。
- ベストアンサー
- Solaris系OS
- ファイル数の取得
ディレクトリにあるファイル数を出力するUNIXのコマンドを探しています lsやls -lですとファイルの詳細までは見れますが、ファイル数は出てきません。 その他調べてみたのですが、方法が見つかりませんでした。 最悪はlsの結果をファイルに書き出してそのファイルの行数を見れば出来そうですが あまりにつたないやり方なので…。 ご存知であればよろしくお願いします。 正式にはBSDではなくBSDをベースにしたマシンですので もしかしたらBSDのコマンドが動かない or BSD以外のコマンドでも動くなどあるかもしれませんが どれかのUNIXで使えれば試してみますので 何かコマンドをご存知であれば教えていただければと思います。 よろしくお願いします。
- ベストアンサー
- BSD系OS
- Unixでファイルを削除するとき、「~~を除いて」削除する、は?
Unixで、カレントディレクトリにたくさんのファイルがあって、 そのうちの一つとか二つのファイルのみ残して あとはみんな削除したいとき、 どのようにすればよいのでしょうか。 rm * とすると、みんな消えてしまいます。 もっとも、私の環境では .cshrcに alias rm 'rm -i' と書いてあるため、削除するときにいちいち確認を取ってきます。 そのときに 削除しないものには n(no)と入力すればよいのですが、 ファイルがたくさんあると いちいち見るのも面倒になって、 y(yes)をどんどん入力してしまって削除してしまう恐れがあります。 コマンドを入力するときに 削除しないものを指定できないでしょうか。 Unixの初級者なので、そのおつもりでご解答いただくとうれしいのですが。。。
- ベストアンサー
- その他(OS)
補足
natural殿の言われているようにシェルスクリプトを利用して 作成することもできそうです。 当方は、ディスク容量等を監視するシステム運用支援PGを 作成したいと考えており、シェルではなく出来ればCにて作成 したいと考えています。 natural殿、回答ありがとうございます。