テクノロジーの雑学・豆知識

PC・スマホ、プログラミング、電子機器、電化製品についての雑学・うんちく・豆知識・トリビアを集めたサイトです。気になった記事や文章を個人のメモとして投稿しています

【C言語文例】カレントディレクトリを取得するgetcwd()の使い方

ヘッダ:unistd.h

書式:char *getcwd(char *buf, size_t length)

引数:buf:…:カレントディレクトリ名を保存する領域のポインタ

length:…カレントディレクトリ名のバイト数

戻り値:成功:絶対パスのポインタ

失敗:NULL

解説:カレントディレクトリ(現在のファイルパス)名を取得し、bufにサイズがlengthまでのカレントディレクトリ名を保存する関数。

 


<サンプルプログラム>

/****************************************************************************/
#include<stdio.h>
#include<string.h>
#include<unistd.h>

#define PATHNAME_SIZE 512

int main(void)
{
// 変数定義
char pathname[PATHNAME_SIZE]; // ファイルパス

// 変数初期化
memset(pathname, '\0', PATHNAME_SIZE);

// カレントディレクトリ取得
getcwd(pathname, PATHNAME_SIZE);
fprintf(stdout,"現在のファイルパス:%s\n", pathname);

// カレントディレクトリ変更
chdir("/root/test/newdir"); // チェンジディレクトリ
getcwd(pathname, PATHNAME_SIZE);
fprintf(stdout,"現在のファイルパス:%s\n", pathname);

return 0;
}
/****************************************************************************/

<実行結果>