C言語+MySQL入門|C:\c-mysqlを作成する

C言語+MySQL入門|C:\c-mysqlを作成する

前回はVS Codeを準備し、統合ターミナルからUCRT64環境を利用できるようにしました。

今回は、これから作成するCプログラムを保存するために、学習用の作業フォルダ C:\c-mysql を作成します。

あわせて、Windowsで使うC:\c-mysqlと、MSYS2で使う/c/c-mysqlが、同じ場所を表していることを確認しましょう。

この記事では、次の作業を行います。

  • 学習用フォルダの役割を確認する。
  • UCRT64ターミナルからC:\c-mysqlを作成する。
  • WindowsとMSYS2の両方から同じ場所を確認する。
  • VS Codeで作業フォルダを開く。
  • コマンドを実行する現在位置を確認する。

章ごとのディレクトリは、次の記事で作成します。まずは、学習用ファイルをまとめる親フォルダを用意しましょう。

学習用ファイルの保存場所を決める

C言語の学習を進めると、ソースコードや実行ファイルなどが増えていきます。

保存場所がばらばらになると、編集したファイルとコンパイルしたファイルを取り違えたり、前に作成したプログラムを見つけにくくなったりします。

そこで、この連載では次の場所を作業の拠点にします。

C:\c-mysql

Cドライブの直下に、c-mysqlという名前のフォルダを作る、という意味です。

Windowsでよく使う「フォルダ」と、コマンドの説明でよく使う「ディレクトリ」は、この記事では同じ保存場所を指しています。

開発ツールの場所と作業フォルダの違い

ここまでに準備したソフトウェアと、今回の作業フォルダを整理します。

場所主な用途
C:\msys64MSYS2や開発用パッケージの保存場所
C:\msys64\ucrt64UCRT64用のGCCやライブラリの保存場所
C:\Program Files\MySQL\MySQL Server 8.4MySQL Server本体などのインストール先
C:\c-mysql自分で作成するCプログラムなどの保存場所

学習用のソースコードは、C:\c-mysqlの中に整理します。

また、このフォルダを作成しても、MySQLのデータベースが作成されるわけではありません。MySQL Serverが管理するデータと、アプリのソースコードは、それぞれ別の場所で扱います。

図1:開発ツールと学習用ファイルの保存場所

この図から分かること

開発に使う道具と、自分で作成するファイルは、役割に合わせて保存場所を分けます。

C:\c-mysqlを学習用の拠点にすると、これから増えるプログラムを一つの場所に整理できます。

WindowsとMSYS2ではパスの書き方が違う

ファイルやフォルダの場所を表す文字列を、パス と呼びます。

同じフォルダでも、WindowsとMSYS2では、よく使うパスの表記が異なります。

対象Windowsでの表記MSYS2での表記
Cドライブの直下C:
/c/
今回の作業フォルダC:\c-mysql/c/c-mysql
今後作成する第2章のフォルダC:\c-mysql\chap02/c/c-mysql/chap02
UCRT64のフォルダC:\msys64\ucrt64/ucrt64

この表は、MSYS2をC:\msys64にインストールした場合の対応です。

MSYS2では、Windowsのドライブを/cのような形で参照できます。また、Windows形式とMSYS2形式のパスを変換するcygpathも用意されています。

/c/c-mysqlの読み方

/c/c-mysqlは、次のように読み取れます。

部分意味
/cCドライブ
c-mysqlCドライブの直下にあるフォルダ名
/パスの区切り

先頭の/cを付けることが大切です。

たとえば、/c-mysqlと書くと、通常はMSYS2のルートを基準にした別の場所になります。この連載のインストール先では、C:\msys64\c-mysqlに相当します。

今回使うパスは、/c/c-mysql です。

UCRT64ではスラッシュで入力する

WindowsのエクスプローラーではC:\c-mysql、UCRT64ターミナルでは/c/c-mysqlという表記を使いましょう。

Bashでは、バックスラッシュが文字を特別に扱うための記号になることがあります。Windowsのパスをそのまま入力するよりも、この記事のコマンドに合わせてスラッシュ区切りで入力すると分かりやすくなります。

UCRT64ターミナルを開く

前回設定したVS Codeの統合ターミナル、またはスタートメニューのMSYS2 UCRT64を開きます。

どちらから作業しても構いません。以下のコマンドは、UCRT64のターミナルに入力してください。

まず、環境を確認します。

echo $MSYSTEM

実行結果の例

UCRT64

UCRT64と表示されたら、作業を進めましょう。

作業フォルダを作成する

次のコマンドを実行します。

mkdir -p /c/c-mysql
コマンドの部分意味
mkdirディレクトリを作成する
-p必要な親ディレクトリも作成し、対象のディレクトリがすでにあってもエラーにしない
/c/c-mysql作成するディレクトリの場所

実行結果の例

正常に完了した場合、通常は何も表示されず、次のコマンドを入力できる状態に戻ります。

すでにC:\c-mysqlが存在している場合も、その中のファイルを削除したり、空にしたりすることはありません。

ただし、同じ名前の通常ファイルがある場合や、作成する権限がない場合はエラーになります。エラーが表示されたときは、内容を確認してから先へ進みましょう。

作成したフォルダへ移動する

フォルダを作成しただけでは、ターミナルの作業場所は変わりません。

次のコマンドで、作成したフォルダへ移動します。

cd /c/c-mysql

cdは、現在の作業ディレクトリを変更するコマンドです。

正常に移動できた場合も、通常は何も表示されません。

現在位置を確認する

続けて、次のコマンドを実行します。

pwd

実行結果の例

/c/c-mysql

この結果が表示されれば、ターミナルの現在位置は、目的の作業フォルダになっています。

ここまでの三つのコマンドは、それぞれ役割が異なります。

コマンド行ったこと
mkdir -p /c/c-mysqlフォルダを作成する
cd /c/c-mysqlそのフォルダへ移動する
pwd現在位置を表示する

作成することと、移動することは別の操作 だと覚えておきましょう。

図2:WindowsとMSYS2から同じフォルダを見る

この図から分かること

C:\c-mysqlと/c/c-mysqlは、同じフォルダを異なる形式で表したものです。

WindowsとMSYS2の間でファイルをコピーする必要はありません。どちらから操作しても、同じ場所にあるファイルを扱います。

Windowsのエクスプローラーでも確認する

UCRT64で作成したフォルダを、Windows側から開いてみましょう。

  1. WindowsキーとEキーを押して、エクスプローラーを開く。
  2. アドレスバーを選択する。
  3. C:\c-mysqlと入力する。
  4. Enterキーを押す。

作成したフォルダが開けば、Windows側からも確認できています。

新しく作成したばかりであれば、中身が空でも正常です。章ごとのフォルダやCファイルは、これから追加していきます。

cygpathでWindowsのパスを表示する

UCRT64ターミナルから、対応するWindowsのパスを表示することもできます。

cygpath -w /c/c-mysql

実行結果の例

C:\c-mysql

-wは、Windows形式のパスを出力する指定です。

cygpathはパスの表記を変換するコマンドであり、フォルダやファイルを移動するコマンドではありません。

絶対パスと相対パスを知る

先ほど使った/c/c-mysqlのように、先頭の/から場所を指定するパスを、MSYS2では 絶対パス と呼びます。

一方、現在位置を基準に場所を指定するものが 相対パス です。

書き方意味
/c/c-mysql現在位置に関係なく、目的の作業フォルダを指定する
.現在のディレクトリ
..一つ上のディレクトリ
chap02現在位置の中にあるchap02

chap02は次の記事で作成します。今は、同じ名前でも現在位置によって参照先が変わることを理解しておけば大丈夫です。

作業場所が分からなくなったとき

ターミナルで移動を繰り返して、現在位置が分からなくなることがあります。

そのときは、まずpwdを実行しましょう。

pwd

学習用フォルダへ戻りたい場合は、絶対パスで指定できます。

cd /c/c-mysql

現在位置に依存しないため、どこからでも同じ作業フォルダへ移動できます。

VS CodeでC:\c-mysqlを開く

フォルダが作成できたら、VS Codeの作業フォルダとして開きます。

  1. VS Codeを起動する。
  2. ファイルメニューからフォルダーを開くを選ぶ。
  3. C:\c-mysqlを選択する。
  4. フォルダーの選択を確定する。
  5. 左側のエクスプローラーにc-mysqlが表示されることを確認する。

自分で作成した学習用フォルダについて信頼の確認が表示された場合は、対象の場所を確認して信頼します。

VS Codeでは、フォルダを開くだけで、そのフォルダをワークスペースとして扱えます。今回のために特別なワークスペースファイルを作る必要はありません。

codeコマンドから開く方法

codeコマンドが利用できる環境では、UCRT64ターミナルから開くこともできます。

最初に、作業フォルダへ移動します。

cd /c/c-mysql

続けて、次のコマンドを実行します。

code .

実行結果の例

VS Codeが開き、C:\c-mysqlが作業フォルダとして表示されます。

ここでの.は、現在のディレクトリを表しています。

codeが見つからない場合は、VS Codeのファイルメニューから開けば作業を進められます。

VS Code内のターミナルでも現在位置を確認する

フォルダを開いたら、VS Codeのメニューからターミナル、新しいターミナルを選びます。

前回設定したMSYS2 UCRT64が起動したことを確認し、次のコマンドを実行してください。

pwd

実行結果の例

/c/c-mysql

別の場所が表示された場合は、次のコマンドで移動します。

cd /c/c-mysql

VS Codeで開いているフォルダと、ターミナルの現在位置は、別々に確認することが大切です。

エディターで別のファイルを選択しても、ターミナルの現在位置が自動的に変わるわけではありません。

図3:作業フォルダとターミナルの現在位置を確認する

この図から分かること

VS Codeで開いているフォルダと、ターミナルでコマンドを実行する場所を確認できます。

今後コンパイルするときも、対象のCファイルがある場所へ移動してから作業すると、ファイルの指定を分かりやすくできます。

フォルダの作成や移動で困ったときは

フォルダが見つからない

WindowsではC:\c-mysql、UCRT64では/c/c-mysqlを指定しているか確認します。

特に、次のような入力の違いに注意してください。

  • /c/c-mysqlの先頭の/cを忘れていないか。
  • c-mysqlのハイフンが全角になっていないか。
  • フォルダ名に余分な空白が入っていないか。
  • デスクトップなど、別の場所に作成していないか。

UCRT64で場所を確認したいときは、cygpath -w /c/c-mysqlでWindows形式のパスを表示できます。

cdで移動できない

対象のディレクトリが存在しない場合や、パスに誤りがある場合は、cdが失敗します。

cdが失敗した後も、ターミナルは元の場所にいることがあります。そのまま次の作業を進めず、エラーメッセージとpwdの結果を確認しましょう。

Permission deniedなどが表示される

作成先への書き込み権限がない可能性があります。

学校や職場で管理されているPCでは、Cドライブ直下へのフォルダ作成が制限されていることもあります。その場合は、管理者にC:\c-mysqlの作成と、その中で学習用ファイルを保存できる権限を相談してください。

フォルダが空なので不安になる

この記事で新しく作成したのは、学習用ファイルをまとめる親フォルダです。

まだCプログラムを書いていないため、中身が空でも問題ありません。次の記事から、章ごとの保存場所を用意していきます。

次は章ごとのディレクトリを作成する

WindowsのエクスプローラーでC:\c-mysqlを開けて、UCRT64のpwdで/c/c-mysqlと表示されれば、作業場所を確認できています。

さらに、VS Codeでも同じフォルダを開いておきましょう。

次の記事では、この中にchap02からchap16までのディレクトリを作成します。章ごとにファイルを整理し、学習の途中でも目的のプログラムを見つけやすくしていきます。

Follow me!