■要求定義
– ファイルを移動させる
■ステップ1
– 標準ライブラリ関数であるrename関数を使う
#include <stdio.h>
int main(){
rename("./test.c", "./hoge/test.c");
printf("移動しました。\n");
return 0;
}
$ ./dev
移動しました。
移動できた事を確認。

■ステップ2
– ユーザ入力で$ mv ${FileName} ${MoveDir}となるので、コマンドラインからの入力を元に移動させたい
– 文字列の分割は”strtok”を使う。ポインタでファイル名s1, 異動先s2を指定する。
#include <stdio.h>
#include <string.h>
int main(){
char ss[256] = "./test.c ./hoge/test.c";
char *s1, *s2;
s1 = strtok(ss, " ");
s2 = strtok(NULL, " ");
rename(s1, s2);
printf("移動しました。\n");
return 0;
}
■ステップ3
– gets()でコマンドラインから入力した値を取得して移動させたい
int main(){
// char ss[256] = "./test.c ./hoge/test.c";
char ss[256];
char *s1, *s2;
gets(ss);
s1 = strtok(ss, " ");
s2 = strtok(NULL, " ");
rename(s1, s2);
printf("移動しました。\n");
return 0;
}
$ ./dev
./test.c ./hoge/test.c
移動しました。

ほう、面白い。コマンドラインからの入力は、strtokで分割して処理すれば良いですな。