c&c++

c&c++

C言語のメモリ環境について

目次1.メモリ領域の違い1.1 各メモリの割り当て状況を確認する2.スタックメモリの確認方法3.ヒープメモリの確認(1)動的メモリのデバッグツール:Valgrind(ヴァルグリンド、GNU General Public License)(2...
c&c++

c言語 関数ポインタ

C言語では、関数ポインタは関数のアドレスを格納する変数です。これにより、プログラムは関数を間接的に呼び出すことができます。関数ポインターは、コールバック関数の実装、動的ディスパッチの実装、ポリモーフィズムのメカニズムの提供など、さまざまな方...
c&c++

c言語 配列と線形リスト

1.配列とは 配列は、同じデータ型の要素を番号(添字:インデックス)順に並べたものを表します。 添字は、C言語を含む多くの言語は0スタートとなります。 (例)要素数100のときの1次元配列a、a・・・a配列のサンプル(1)list_samp...
c&c++

c言語 スレッド間の排他制御

1.概要 複数のスレッドで共有リソースにアクセスするとき、同時に1つのスレッドだけが共有リソースにアクセスできるようにするために、ミューテックス (英: mutex)が使用されます。2.ミューテックスを使った排他制御 下記のサンプルでは、2...
c&c++

c言語 コールバック関数

1.概要 コールバック関数 (関数ポインターとも呼ばれます) は、別の関数(ハンドラ)に引数として渡される関数です。2.コールバック関数を使用する利点(1)柔軟性 別の関数をコールバックとして渡すことにより、実行時に関数の動作をカスタマイズ...
c&c++

c言語 デバック文の出力方法

(1)DEBUG_PRINT()の関数をマクロ定義します。#defineDEBUG_PRINT(...)printf("%s(%d)%s:",__FILE__,__LINE__,__func__),printf("Debug:%s\n",_...
c&c++

base64ライブラリ

1.base64とは base64とは、64進数を意味する言葉で、すべてのデータをアルファベット(a~z, A~z)と数字(0~9)、一部の記号(+,/)の64文字で表すエンコード方式である。 Eメールを送るためのプロトコルSMTPでは、A...
c&c++

マルチプロセスとマルチスレッド(Linux)

目次1.マルチプロセス2.マルチスレッド1.マルチプロセス(1)概要 プロセスはOSによってCPUに割り当てられたプログラムの実行単位で、プロセスには連続した仮想メモリ空間が用意されます。マルチプロセスは複数のプロセスが並列に実行できるよう...
c&c++

ソケット通信(Linux)

目次1.ソケット通信とは2.ソケットを用いたサーバ/クライアント間通信3.サンプルプログラム3.1 コネクション型3.2 コネクションレス型1.ソケット通信とは ソケットAPIを用いた異なるホスト間の通信のアプリケーションです。ソケットAP...
c&c++

C++言語

C言語に対して、C++で追加になった機能を中心に記載します。1.動作環境(サンプルの実行環境)・VirtualBoxのCentOs7マシン・CentOsのバージョン#cat/etc/redhat-releaseCentOS Linux re...