C言語,rename()関数でファイル名を変更する

スポンサーリンク

鍛錬 729

C言語,rename()関数でファイル名を変更する

ファイル名を変更するには、rename()関数を使用します。
 
以下は、rename()関数についてです。

#include <stdio.h>

int rename(const char *oldpath, const char *newpath);
 

引数

以下は、上記の引数についてです。

引数 意味
const char *oldpath 変更前のパス
const char *newpath 変更後のパス

戻り値

以下は、戻り値についてです。

戻り値
int 成功 0
int エラー -1
スポンサーリンク

プログラム

以下は、指定したファイルの名前を変更するプログラム、test_rename.c です。

今回は、次のファイル名を削除しています。

変更前のファイル名
/var/tmp/test/A.txt
変更後のファイル名
/var/tmp/test/B.txt
// include
#include <stdio.h>
#include <stdlib.h>

// main
int main(void)
{
	char old_path[256] = "/var/tmp/test/A.txt";
	char new_path[256] = "/var/tmp/test/B.txt";
	int ret;
	
	// ファイル名を変更
	ret = rename(old_path, new_path);
	if (ret == -1) {
		perror("rename");
		exit(EXIT_FAILURE);
	}
	else {
		printf("SUCCESS,rename(),%s -> %s\n", old_path, new_path);
	}
	
	return 0;
}
スポンサーリンク

実行結果

以下は、プログラム test_rename.c を実行しています。

ディレクトリ「/var/tmp/test」にファイル「A.txt」を作成後、プログラムを実行しています。

***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ echo -n > /var/tmp/test/A.txt
***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ ls -l /var/tmp/test
合計 0
-rw-r--r-- 1 *** *** 0 Jan  3 01:47 A.txt
***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ gcc -Wall -Wextra test_rename.c -o test_rename
***@ubuntu:~/***/test/c$ ./test_rename
SUCCESS,rename(),/var/tmp/test/A.txt -> /var/tmp/test/B.txt
***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ ls -l /var/tmp/test
合計 0
-rw-r--r-- 1 *** *** 0 Jan  3 01:47 B.txt

 
上記に示した通り、ファイル名を変更することができました。

タイトルとURLをコピーしました