C言語
C言語の rand()関数のサンプルプログラムです。 rand()関数は、0 から RAND_MAX までの整数を返します。決まりきった事を実行する事が得意なコンピューターにとって、乱数を生成するのは難しい作業です。そのため実際には純粋にランダムな数字では無く、疑似…
C言語の srand() 関数のサンプルプログラムです。 srand()関数は、疑似乱数を返す rand()関数の開始点を設定します。 逆に言うと、srand()関数をコールしないと、rand()関数は毎回同じ所から開始する事になります。その事を確認するプログラムを書いてみます…
MicrosoftのVisual Cに、gdbのようなコマンドラインで使えるデバッガは無いのかな?と思って、コンパイラ(cl.exe)やリンカ(link.exe)が置いてあるフォルダを眺めていたら、アセンブラを発見しました。名前は『ml.exe』です。Intel CPUのアセンブラは全く…
C言語の「assert.h」を使ったサンプルプログラムです。 たまに見かけるコードなのですが、自分では今までに使った事が無くて、今回初めて使ってみました。 assert() 条件の検証 準拠 POSIX.1-2001, POSIX.1-2008, C89, C99 #include <assert.h> void assert( int expre</assert.h>…
C言語の「stdarg.h」を使ったサンプルプログラムです。 va_start() 引数リストを初期化する C89 #include <stdarg.h> void va_start( va_list ap, last ); va_arg() 次の位置にある引数を取得する C89 #include <stdarg.h> type va_arg( va_list ap, type ); va_arg() を呼び出す</stdarg.h></stdarg.h>…
C言語の「bsearch()関数」のサンプルプログラムです。 bsearch() ソートされた配列を二分木検索 (binary search) する POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD #include <stdlib.h> void *bsearch( const void *key, const void *base, size_t nmemb, siz</stdlib.h>…
C言語で使える正規表現ライブラリのサンプルプログラムです。 regex [POSIX.1-2001準拠] ヘッダーファイル #include <sys/types.h>#include <regex.h> 構造体 typedef struct{ regoff_t rm_so; /* 次の最大マッチング部分の開始オフセット位置 */ regoff_t rm_eo; /* 終了オフセッ</regex.h></sys/types.h>…
C言語の「clock()関数」のサンプルプログラムです。 #include <time.h> clock_t clock(); clock()関数は、プログラムの実行開始から数えたシステム時計のサイクル数を返します。秒数を算出するには。この値をCLOCKS_PER_SECマクロで割ります。 目次 目次 ソースコー</time.h>…
C言語の「signal()関数」のサンプルプログラムです。 signal() シグナル操作 準拠 ANSI C, C89, C99, POSIX.1-2001. #include <signal.h> sighandler_t signal (int signum, sighandler_t sighandler) ; シグナル signum の処理方法を handler に設定する。handler に</signal.h>…
C言語の「pause()関数」のサンプルプログラムです。 pause() シグナルを待つ 準拠 SVr4, 4.3BSD, POSIX.1-2001. #include <unistd.h> int pause (void) ; 呼び出したプロセス(またはスレッド)を、シグナルを受け取り、終了させられるか、シグナル捕獲関数が呼び出され</unistd.h>…
『【1/3】DLLを作成してみる』で作成したDLLを利用するアプリケーションを書いてみる。 繰り返しになりますが、想定しているのは以下のプラットフォーム(開発環境)です。 WindowsのDLLファイル(Visual Studio) LinuxのSOファイル(gcc) CygwinのDLLファ…
『【1/3】DLLを作成してみる』で作成したDLLを利用するアプリケーションを書いてみる。 繰り返しになりますが、想定しているのは以下のプラットフォーム(開発環境)です。 WindowsのDLLファイル(Visual Studio) LinuxのSOファイル(gcc) CygwinのDLLファ…
C言語でシンプルなダイナミックリンクライブラリを書いてみる。 単一のC言語ソースで、複数アーキテクチャ向けの共有ライブラリとしてビルドすることを考える。 想定しているのは以下のプラットフォーム(開発環境)です。 WindowsのDLLファイル(Visual Stu…
目次 ANSIエスケープシーケンスとは ANSIエスケープシーケンスの使用例 ANSIエスケープシーケンスの制御コードは邪魔になることも… 制御コードを抑制する為の条件は…? isatty()関数のドキュメント STDOUT(標準出力)の出力先によって切り替える 端末エミュレ…