C言語関係掲示板

過去ログ

No.181.ファイルのパーミッションを変更する方法


No.1165

ファイルのパーミッション
投稿者---けろちゃん(2002/03/05 18:34:23)


C言語でファイルのパーミッションを変更する方法ってありますか?
ファイル名は変数で指定したいのですが、何か良い方法はありますか?

あと、System()関数で引数に変数を使用することは可能でしょうか?
例えば、CPコマンドをSYSTEM関数で使用した場合
コピー元とコピー先のファイル名を変数で指定する方法はありますか?

宜しくお願いします。

No.1166

Re:ファイルのパーミッション
投稿者---kikk(2002/03/05 20:17:42)


ども。


>C言語でファイルのパーミッションを変更する方法ってありますか?
>ファイル名は変数で指定したいのですが、何か良い方法はありますか?

chmod()という非標準な関数が(UNIXならsys/types.hかsys/stat.hに、
DOS/Winならio.hに)あります。なお、UNIXのオンラインマニュアルで、
man chmodとすると、コマンドのほうが出てきてしまうので、man -s 2 chmod
としてシステムコールのほうを指定してみてください。もしかしたらmanの
セクション指定の方法が違うかもしれませんが、そのときはman man等して
ください。。


>あと、System()関数で引数に変数を使用することは可能でしょうか?
>例えば、CPコマンドをSYSTEM関数で使用した場合
>コピー元とコピー先のファイル名を変数で指定する方法はありますか?

system()に渡す文字列をsprintf()でつくればどうでしょ?


では。

No.1167

Re:ファイルのパーミッション
投稿者---けろちゃん(2002/03/05 21:31:00)


ありがとうございます。
大変参考になりました。

>system()に渡す文字列をsprintf()でつくればどうでしょ?
System()に渡すというのはどのように記述すればよろしいのでしょうか?

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

No.1174

Re:ファイルのパーミッション
投稿者---kikk(2002/03/06 01:00:00)


ども。


>>system()に渡す文字列をsprintf()でつくればどうでしょ?
>System()に渡すというのはどのように記述すればよろしいのでしょうか?

system()に渡す文字列 -> system()の引数にする文字列

でよろしいでしょうか?

具体的には、

char commandline[1024];

としておいて、

sprintf(commandline, "cp %s %s", src, dest); /* 例えばcp */
system(commandline);

というような感じです。


では。

戻る


「初心者のためのポイント学習C言語」 Last modified:2002.05.14
Copyright(c) 2000-2002 TOMOJI All Rights Reserved