C
こんにちは。 本日はC言語メモです。 概要 int型の場合 long型の場合 long long型の場合 概要 stdlib.hに含まれる標準関数を使用して 数値の絶対値を取得したいと思います。 型に応じた関数が用意されているので それぞれのサンプルを作ってみました。 int型…
こんにちは。 本日はC言語メモです。 概要 C言語には標準ライブラリに配列をソートする qsort()という関数があります。 この関数は、stdlib.hに含まれています。 qsort()のプロトタイプは void qsort(void *base, size_t num, size_t size, int (*compar)(co…
こんにちは。 本日はC言語メモです。 リトルエンディアンからビッグエンディアン 値の場合 配列の場合 ビッグエンディアンからリトルエンディアン 値の場合 配列の場合 リトルエンディアンからビッグエンディアン 今回はint型の値を変換します。 リトルエン…
こんにちは。 本日はC言語メモです。 エンディアンを調べる 自分の環境のエンディアンを調べる方法は int型の「1」の先頭1バイトを確認する方法がとても楽です。 先頭バイトが1ならリトルエンディアン(01,00,00,00) 0ならビッグエンディアン(00,00,00,01)と…
こんにちは。 本日はC言語メモです。 概要 キューのメイン処理 使用する側のコード 実行結果 概要 今回はキューを実装してみたいと思います。 キューとは... 先入れ先出し(FIFO: First-In-First-Out)のデータ管理です。 つまり、最初にいれたデータから取り…
こんにちは。 本日はC言語メモです。 概要 要素数が確定している場合 要素数を引数で受け取る場合 オフセットを計算する場合 概要 行、列、値といった3次元配列を引数で受け取り、 要素を出力したい。。。 そんな場合に使えそうなサンプルを本記事ではメモし…
こんにちは。 本日はC言語メモです。 概要 サンプルコード 概要 以前、CSVを読み込む記事を書きました。 【C】CSVを読んで構造体にセットしてみる - なんだかGoodVibes そこで紹介したサンプルを元にINI形式のファイルを 読み込むサンプルを作ってみました。…
こんにちは。 本日はC言語メモです。 概要 文字が英字かどうかの判定 文字が数字かどうかの判定 文字が英字もしくは数字かどうかの判定 文字が空白文字かどうかの判定 概要 標準ライブラリヘッダである「ctype.h」に含まれる関数を使って 文字の判定をやって…
こんにちは。 本日はC言語メモです。 概要 複数行のファイルを読み込み、 カンマ区切りのファイル(CSV)を読み込んで 構造体にセットしてみたいと思います。 サンプルコード 今回のサンプルの流れとしては ファイルからデータを取得 カンマで分割して構造体に…
こんにちは。 本日はC言語メモです。 概要 読み込む行数に制限があるパターン 読み込む行数に制限がないパターン 概要 本記事では複数行存在するファイルの読み込みについて 以下の2パターンの方法を記載しています。 読み込む行数に制限があるパターン 読み…
こんにちは。 本日はC言語メモです。 概要 本記事では、静的2次元配列と動的2次元配列を 作るサンプルを記載します。 今までの配列に関する記事は以下を参照ください。 【C】[超入門] 配列いろいろ - なんだかGoodVibes 【C】[超入門] 動的配列を作ってみる …
こんにちは。 本日はC言語メモです。 概要 置換(もとの文字列を変更するパターン) 置換(もとの文字列を変更しないパターン) 分割(もとの文字列を変更するパターン) 分割(もとの文字列を変更しないパターン) 概要 本日の記事は、文字列の置換と分割です。 サ…
こんにちは。 本日はC言語メモです。 概要 16進数でprintf 8進数でprintf 2進数でprintf 概要 タイトルにある通り、printfを使用して 各進数の出力を行っていきたいと思います。 16進数、8進数は標準のフォーマット指定子を使用して 出力を行っています。 2…
こんにちは。 本日はC言語メモです。 概要 サーバ側 ノンブロッキングの設定 accept()の判定 recv()の判定 クライアント側 ノンブロッキングの設定 send()の判定 実行結果 サーバ側 クライント側 概要 今までのTCP記事はブロッキングでした。 【C】TCP通信処…
こんにちは。 本日はC言語メモです。 概要 UDP通信処理で使われる関数 socket() bind() recvfrom() sendto() close() エコーサーバサンプル クライアント サーバ 概要 UDP通信処理にて、ソケット作成 〜送受信までの処理で サーバ側、クライアント側で 使用…
こんにちは。 本日はC言語メモです。 概要 ヘッダファイル クライアント側 サーバ側 実行結果 概要 TCP通信でデータのやり取りを行う際 固定長のデータ部の情報を持つヘッダと 可変長のデータ部といった構成になっている場合が よくありますよね。 本記事で…
こんにちは。 本日はC言語メモです。 概要 TCP通信処理で使われる関数 socket() bind() listen() accept() connect() read() send() close() エコーサーバサンプル クライアント サーバ 概要 TCP通信処理にて、ソケット作成 〜送受信までの処理で サーバ側、…
こんにちは。 本日はC言語メモです。 概要 サーバ側サンプルコード 1. FIFOファイルを作成 2. FIFOファイルをオープンする 3. 受信データを読み込む 4. FIFOファイルをクローズする 5. FIFOファイルを削除する クライアント側サンプルコード 1. FIFOファイル…
こんにちは。 本日は、C言語メモです。 概要 strcmp()を使って文字列比較 strncmp()を使って文字列比較 memcmp()を使って文字列比較 概要 本記事では、以下の関数を使用して 文字列を比較する方法について記載します。 strcmp() strncmp() memcmp() strcmp()…
こんにちは。 本日はC言語メモです。 概要 sleep()のサンプルコード usleep()のサンプルコード nanosleep()のサンプルコード 概要 本記事では、C言語で以下の関数を使用して 処理を一時停止させる方法について記載しています。 sleep() usleep() nanosleep()…
こんにちは。 本日はC言語メモです。 概要 shortが最大メンバとなる構造体 intが最大メンバとなる構造体 doubleが最大メンバとなる構造体 概要 C言語の構造体を定義するとき、アライメントに注意する必要があります。 アライメントとは、CPUが効率よくデータ…
こんにちは。 本日はC言語メモです。 概要 サンプルコード 概要 無限にループしているアプリを作ったとき 「Ctrl + C」でアプリを停止します。 このとき、終了する前になにか処理をしたい場合ってありますよね。 本記事では、signal()関数を使用して「Ctrl +…
こんにちは。 本日はC言語メモです。 概要 asctimeを使用して取得 ctimeを使用して取得 strftime を使用して取得 gettimeofday を使用してミリ秒まで取得 概要 本記事は、時刻を文字列で取得する方法について いくつかの方法を記載しています。 固定書式で取…
こんにちは。 本日はC言語メモです。 概要 サンプルコード 概要 定義済みマクロは、C言語のコンパイラやプリプロセッサによって 自動的に定義されているマクロのことです。 定義済みマクロは、コンパイル時に展開されます。 本記事では、以下の定義済みマク…
こんにちは。 本日はC言語メモです。 概要 動的配列の作成 動的配列のサイズを変更する 概要 通常の配列は、宣言時以外では要素数を変更することができません。 でも、配列の要素数を動的に決定したい場合もありますよね。 本記事は、malloc()を使用して 動…
こんにちは。 本日はC言語メモです。 変数を定数として宣言 ポインタ変数を定数として宣言 ポインタが指す値を定数にする(定数へのポインタ) ポインタ自体を定数にする ポインタが指す値、ポインタ自体を定数にする 関数の引数を定数として宣言 変数を定数と…
こんにちは。 本日はC言語メモです。 概要 defineを使って数値に名前をつける defineを使って文字列に名前をつける defineを使って関数に名前をつける 概要 defineを使用すると、数値や文字列、式などを定義することができます。 defineで定義したものは、コ…
こんにちは。 本日はC言語メモです。 概要 サンプルコード 概要 ファイルの読み書きについては 以下の記事でも記載しているのでご参考までに。 【C】[超入門] fopenとfcloseを使用してファイル開閉 - なんだかGoodVibes 【C】バイナリファイルの読み書き - …
こんにちは。 本日はC言語メモです。 概要 サンプルコード 概要 バイナリファイルの読み書きで使用する関数は以下です。 fopen : ファイルオープン fclose : ファイルクローズ fwrite : ファイル書き込み fread : ファイル読み込み fopenとfcloseについては…
こんにちは。 本日はC言語メモです。 概要 ファイルの読み込み モードがr、r+の場合 モードがw+の場合 モードがa+の場合 ファイルの書き込み モードがr+の場合 モードがw、w+の場合 モードがa、a+の場合 概要 ファイルの開閉を行うには以下を使用します。 FI…