C言語で容量計算

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
もじゃ

C言語で容量計算

#1

投稿記事 by もじゃ » 16年前

LINUXでC言語の勉強をしているのですが
あるディレクトリ配下にあるファイルの総容量を計測するには
どのような処理があるでしょうか?
/home/work/配下にファイルa.txt、b.txt、c.txtがある場合に
この3ファイルの合計容量を求める処理を教えて頂けないでしょうか?

toyo

Re:C言語で容量計算

#2

投稿記事 by toyo » 16年前

duというコマンドがあります
du /home/work
で表示されると思います
オプション等は検索して調べてください

もじゃ

Re:C言語で容量計算

#3

投稿記事 by もじゃ » 16年前

> duというコマンドがあります
> du /home/work
> で表示されると思います
> オプション等は検索して調べてください
>

コメントありがとうございます。

duコマンドはc言語の文中で使用できるでしょうか?
c言語の処理でduコマンドと同じような結果を出力させる
方法をご存知でしたら教えて頂きたいです。

俺最高

Re:C言語で容量計算

#4

投稿記事 by 俺最高 » 16年前

もう解決したかもしれませんが。

>duコマンドはc言語の文中で使用できるでしょうか?
リナックスコマンドはC言語中では「system(コマンド名)」で使用できます。
ちなみに(コマンド名)は単なる文字列です。
ただし、あくまでもコマンドを実行するだけなので、コンソール中にduの結果を
出して終わります。そのため、リダイレクトを使用したりしてそれなりに編集を
行う必要があります。

>c言語の処理でduコマンドと同じような結果を出力させる
>方法をご存知でしたら教えて頂きたいです。

私の場合はディレクトリの情報を取得できるstat関数を使ってやったことがあります。
これまた確認出来ないので詳しく書けませんが
①#include <sys/stat.h>が必要
②struct stat 変数名を宣言
③stat(ディレクトリのパス,②で宣言した変数名)で、変数に情報が格納されます。
④変数.st_sizeメンバーに、ディレクトリの容量(バイト)が入ると思います。

注意点
①stat関連については、検索エンジンで調べたほうがいいです。(コンパイラ依存だったりするので)
②調べるディレクトリの下にさらにディレクトリがあったりすると、上手く計算しない(と思いました)

閉鎖

“C言語何でも質問掲示板” へ戻る