LINUXでC言語の勉強をしているのですが
あるディレクトリ配下にあるファイルの総容量を計測するには
どのような処理があるでしょうか?
/home/work/配下にファイルa.txt、b.txt、c.txtがある場合に
この3ファイルの合計容量を求める処理を教えて頂けないでしょうか?
C言語で容量計算
Re:C言語で容量計算
> duというコマンドがあります
> du /home/work
> で表示されると思います
> オプション等は検索して調べてください
>
コメントありがとうございます。
duコマンドはc言語の文中で使用できるでしょうか?
c言語の処理でduコマンドと同じような結果を出力させる
方法をご存知でしたら教えて頂きたいです。
> du /home/work
> で表示されると思います
> オプション等は検索して調べてください
>
コメントありがとうございます。
duコマンドはc言語の文中で使用できるでしょうか?
c言語の処理でduコマンドと同じような結果を出力させる
方法をご存知でしたら教えて頂きたいです。
Re:C言語で容量計算
もう解決したかもしれませんが。
>duコマンドはc言語の文中で使用できるでしょうか?
リナックスコマンドはC言語中では「system(コマンド名)」で使用できます。
ちなみに(コマンド名)は単なる文字列です。
ただし、あくまでもコマンドを実行するだけなので、コンソール中にduの結果を
出して終わります。そのため、リダイレクトを使用したりしてそれなりに編集を
行う必要があります。
>c言語の処理でduコマンドと同じような結果を出力させる
>方法をご存知でしたら教えて頂きたいです。
私の場合はディレクトリの情報を取得できるstat関数を使ってやったことがあります。
これまた確認出来ないので詳しく書けませんが
①#include <sys/stat.h>が必要
②struct stat 変数名を宣言
③stat(ディレクトリのパス,②で宣言した変数名)で、変数に情報が格納されます。
④変数.st_sizeメンバーに、ディレクトリの容量(バイト)が入ると思います。
注意点
①stat関連については、検索エンジンで調べたほうがいいです。(コンパイラ依存だったりするので)
②調べるディレクトリの下にさらにディレクトリがあったりすると、上手く計算しない(と思いました)
>duコマンドはc言語の文中で使用できるでしょうか?
リナックスコマンドはC言語中では「system(コマンド名)」で使用できます。
ちなみに(コマンド名)は単なる文字列です。
ただし、あくまでもコマンドを実行するだけなので、コンソール中にduの結果を
出して終わります。そのため、リダイレクトを使用したりしてそれなりに編集を
行う必要があります。
>c言語の処理でduコマンドと同じような結果を出力させる
>方法をご存知でしたら教えて頂きたいです。
私の場合はディレクトリの情報を取得できるstat関数を使ってやったことがあります。
これまた確認出来ないので詳しく書けませんが
①#include <sys/stat.h>が必要
②struct stat 変数名を宣言
③stat(ディレクトリのパス,②で宣言した変数名)で、変数に情報が格納されます。
④変数.st_sizeメンバーに、ディレクトリの容量(バイト)が入ると思います。
注意点
①stat関連については、検索エンジンで調べたほうがいいです。(コンパイラ依存だったりするので)
②調べるディレクトリの下にさらにディレクトリがあったりすると、上手く計算しない(と思いました)