なんだかGoodVibes

日々の勉強メモです。

C

【C】名前付きパイプを使用してプロセス間通信してみる

C

こんにちは。 本日はC言語メモです。 概要 サーバ側サンプルコード 1. FIFOファイルを作成 2. FIFOファイルをオープンする 3. 受信データを読み込む 4. FIFOファイルをクローズする 5. FIFOファイルを削除する クライアント側サンプルコード 1. FIFOファイル…

【C】文字列の比較(strcmp、strncmp、memcmp)

C

こんにちは。 本日は、C言語メモです。 概要 strcmp()を使って文字列比較 strncmp()を使って文字列比較 memcmp()を使って文字列比較 概要 本記事では、以下の関数を使用して 文字列を比較する方法について記載します。 strcmp() strncmp() memcmp() strcmp()…

【C】処理の一時停止(sleep、usleep、nanosleep)

C

こんにちは。 本日はC言語メモです。 概要 sleep()のサンプルコード usleep()のサンプルコード nanosleep()のサンプルコード 概要 本記事では、C言語で以下の関数を使用して 処理を一時停止させる方法について記載しています。 sleep() usleep() nanosleep()…

【C】構造体のアライメント

C

こんにちは。 本日はC言語メモです。 概要 shortが最大メンバとなる構造体 intが最大メンバとなる構造体 doubleが最大メンバとなる構造体 概要 C言語の構造体を定義するとき、アライメントに注意する必要があります。 アライメントとは、CPUが効率よくデータ…

【C】signal関数を使ってシグナル検知

C

こんにちは。 本日はC言語メモです。 概要 サンプルコード 概要 無限にループしているアプリを作ったとき 「Ctrl + C」でアプリを停止します。 このとき、終了する前になにか処理をしたい場合ってありますよね。 本記事では、signal()関数を使用して「Ctrl +…

【C】時刻を文字列で取得する

C

こんにちは。 本日はC言語メモです。 概要 asctimeを使用して取得 ctimeを使用して取得 strftime を使用して取得 gettimeofday を使用してミリ秒まで取得 概要 本記事は、時刻を文字列で取得する方法について いくつかの方法を記載しています。 固定書式で取…

【C】定義済みマクロを使ってみる

C

こんにちは。 本日はC言語メモです。 概要 サンプルコード 概要 定義済みマクロは、C言語のコンパイラやプリプロセッサによって 自動的に定義されているマクロのことです。 定義済みマクロは、コンパイル時に展開されます。 本記事では、以下の定義済みマク…

【C】[超入門] 動的配列を作ってみる

C

こんにちは。 本日はC言語メモです。 概要 動的配列の作成 動的配列のサイズを変更する 概要 通常の配列は、宣言時以外では要素数を変更することができません。 でも、配列の要素数を動的に決定したい場合もありますよね。 本記事は、malloc()を使用して 動…

【C】[超入門] constの使い方

C

こんにちは。 本日はC言語メモです。 変数を定数として宣言 ポインタ変数を定数として宣言 ポインタが指す値を定数にする(定数へのポインタ) ポインタ自体を定数にする ポインタが指す値、ポインタ自体を定数にする 関数の引数を定数として宣言 変数を定数と…

【C】[超入門] define(マクロ)を使ってみる

C

こんにちは。 本日はC言語メモです。 概要 defineを使って数値に名前をつける defineを使って文字列に名前をつける defineを使って関数に名前をつける 概要 defineを使用すると、数値や文字列、式などを定義することができます。 defineで定義したものは、コ…

【C】fseekでファイル位置を変更してバイナリファイル読み込み

C

こんにちは。 本日はC言語メモです。 概要 サンプルコード 概要 ファイルの読み書きについては 以下の記事でも記載しているのでご参考までに。 【C】[超入門] fopenとfcloseを使用してファイル開閉 - なんだかGoodVibes 【C】バイナリファイルの読み書き - …

【C】バイナリファイルの読み書き

C

こんにちは。 本日はC言語メモです。 概要 サンプルコード 概要 バイナリファイルの読み書きで使用する関数は以下です。 fopen : ファイルオープン fclose : ファイルクローズ fwrite : ファイル書き込み fread : ファイル読み込み fopenとfcloseについては…

【C】[超入門] fopenとfcloseを使用してファイル開閉

C

こんにちは。 本日はC言語メモです。 概要 ファイルの読み込み モードがr、r+の場合 モードがw+の場合 モードがa+の場合 ファイルの書き込み モードがr+の場合 モードがw、w+の場合 モードがa、a+の場合 概要 ファイルの開閉を行うには以下を使用します。 FI…

【C】[超入門] 構造体

C

こんにちは。 本日はC言語メモです。 構造体を宣言してみる 構造体を使うと 複数の型をまとめて扱うことができます。 構造体の宣言は、structで行います。 #include <stdio.h> #include <string.h> struct person { int id; char name[10]; }; int main () { struct person data</string.h></stdio.h>…

【C】[超入門] ポインタいろいろ(変数、演算、引数)

C

こんにちは。 本日はC言語メモです。 ポインタ変数 ポインタ演算 ポインタ引数 ポインタ変数 ポインタ変数とは、ポインタ型で宣言された変数のことです。 ポインタ変数には、指定した型の変数のアドレスを代入できます。 以下のように宣言します。 int *p; i…

【C】[超入門] &を使ってアドレスを表示する

C

こんにちは。 本日はC言語メモです。 &を使ってみる &を使ってみる プログラムを作った際、変数の情報は コンピュータのメモリ上に作られます。 &を使うと、その変数のアドレス (メモリ上の番地みたいなもの) を取得することができます。 以下はint aのアド…

【C】[超入門] ローカル変数、グローバル変数、static変数

C

こんにちは。 本日はC言語メモです。 ローカル変数 グローバル変数 static変数 ローカル変数 ローカル変数とは、関数内で定義された変数です。 ローカル変数の寿命は定義された関数の中だけとなります。 ローカル変数は、他の関数からのアクセスはできません…

【C】非同期処理を作ってみる(pthread)

C

こんにちは。 本日はC言語メモです。 概要 引数なし、戻り値なしの非同期処理 引数あり、戻り値なしの非同期処理 引数なし、戻り値ありの非同期処理 概要 本記事では、 pthread_create pthread_join を使用して非同期処理を作成します。 ptread_createでスレ…

【C】[超入門] 配列いろいろ

C

こんにちは。 本日はC言語メモです。 配列の宣言 宣言と初期値の代入を同時に行う 配列の要素数を調べる 配列をコピーする for文を使ってコピーする memcpyを使ってコピーする 配列の宣言 要素数が3の配列を宣言して 値を設定します。 #include <stdio.h> int main() </stdio.h>…

【C】[超入門] 関数を作ってみる

C

こんにちは。 本日はC言語メモです。 引数・戻り値なしの関数 引数あり・戻り値なしの関数 引数・戻り値ありの関数 引数・戻り値なしの関数 「Hello World.」と出力するだけの関数を作ってみます。 #include <stdio.h> // プロトタイプ宣言 void print_hello(); int m</stdio.h>…

【C】[超入門] 繰り返し処理

C

こんにちは。 本日はC言語メモです。 forを使用した繰り返し処理 whileを使用した繰り返し処理 do-whileを使用した繰り返し処理 forを使用した繰り返し処理 for文は、繰り返す回数を指定することができます。 例えば、以下のコードはmax変数に指定した回数分…

【C】[超入門] 条件分岐といろいろな演算子

C

こんにちは。 本日はC言語メモです。 ifを使用した条件分岐 switchを使用した条件分岐 色々な演算子 等価演算子 関係演算子 論理演算子 ifを使用した条件分岐 if文の構文は以下のようになります。 if (条件式1) { // 条件式1がtrueの場合に実行される } else…

【C】[超入門] キーボードからの入力を取得する(scanf、fgets)

C

こんにちは。 本日はC言語メモです。 scanfを使用した方法 入力が1つの場合 入力が複数の場合 fgetsを使用した方法 scanfを使用した方法 scnafの書式は、int scanf(const char *format, argument-list) です。 入力が1つの場合 #include <stdio.h> int main() { int a</stdio.h>…

【C】[超入門] 四則演算と複合代入演算子と進数

C

こんにちは。 本日はC言語メモです。 四則演算 複合代入演算子 進数 四則演算 以下の四則演算のサンプルです。 加算(+) 減算(-) 乗算(*) 除算(/) 剰余算(%) #include <stdio.h> int main() { int x = 100; int y = 30; printf("%d + %d = %d\n", x, y, x + y); printf</stdio.h>…

【C】[超入門] 共有ライブラリと静的ライブラリの変更時の違い

C

こんにちは。 本日は、C言語メモです。 概要 ディレクトリ構成と各ファイル 共有ライブラリの内容を変更する 静的ライブラリの内容を変更する 概要 共有ライブラリと静的ライブラリ、変更が発生した際に どのような違いがあるのかについて 本記事で記載しよ…

【C】[超入門] 静的ライブラリを作成する

C

こんにちは。 本日は、C言語メモです。 概要 静的ライブラリの作成とリンク 静的ライブラリの作成 静的ライブラリをリンクする 概要 C言語の静的ライブラリの作成と 静的ライブラリのリンクを方法について記載します。 動作環境はMacです。 静的ライブラリの…

【C】[超入門] 共有ライブラリを作成する

C

こんにちは。 本日は、C言語メモです。 概要 共有ライブラリの作成とリンク 共通ライブラリの作成 共有ライブラリをリンクする 概要 C言語の共有ライブラリの作成と 共通ライブラリのリンクを方法について記載します。 動作環境はMacなので、 本記事で作成す…

【C】[超入門] C言語でコンパイル

C

こんにちは。 本日はC言語メモです。 概要 .cファイルのみの場合 .hファイルが存在する場合 .hファイルが存在する場合(他の階層) 複数のオブジェクトファイルから実行ファイルを生成 概要 C言語で開発を行う際、いつもコンパイルってどうするんだっけ?? っ…