tomyamaのブログ

日記・雑記。

Cygwin

シェルスクリプトのテンプレート

いつも使っている Shell Script のテンプレートです。 今はほとんどの環境でデフォルトのシェルは「bash」です。でも自分は枯れつくした「Bourne Shell」で動くように書いています。ですので、1行目は「#!/bin/sh」になっています。 どうしても配列を使いた…

C言語 rand()関数のサンプルコード

C言語の rand()関数のサンプルプログラムです。 rand()関数は、0 から RAND_MAX までの整数を返します。決まりきった事を実行する事が得意なコンピューターにとって、乱数を生成するのは難しい作業です。そのため実際には純粋にランダムな数字では無く、疑似…

C言語 srand()関数のサンプルコード

C言語の srand() 関数のサンプルプログラムです。 srand()関数は、疑似乱数を返す rand()関数の開始点を設定します。 逆に言うと、srand()関数をコールしないと、rand()関数は毎回同じ所から開始する事になります。その事を確認するプログラムを書いてみます…

C言語 <assert.h> デバッグ用の診断機能

C言語の「assert.h」を使ったサンプルプログラムです。 たまに見かけるコードなのですが、自分では今までに使った事が無くて、今回初めて使ってみました。 assert() 条件の検証 準拠 POSIX.1-2001, POSIX.1-2008, C89, C99 #include <assert.h> void assert( int expre</assert.h>…

C言語 <stdarg.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() ソートされた配列を二分木検索 (binary search) する

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言語 POSIX 正規表現(regex)

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>…

Linux系の各ディストリビューションのバージョンを確認するコマンド

目次 目次 はじめに Linux全般 /proc/version CentOS・Debian系 /etc/redhat-release /etc/os-release Knoppix /home/knoppix/Desktop/KNOPPIX/KNOPPIX/kversion Cygwin cygcheck コマンド Android, Termux ENVIRONMENT [ 環境変数 ] さいごに [ver]スクリプ…

C言語 clock() プロセッサ時間の取得

C言語の「clock()関数」のサンプルプログラムです。 #include <time.h> clock_t clock(); clock()関数は、プログラムの実行開始から数えたシステム時計のサイクル数を返します。秒数を算出するには。この値をCLOCKS_PER_SECマクロで割ります。 目次 目次 ソースコー</time.h>…

C言語 signal() ANSI C シグナル操作

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>…

検索にマッチした行の前後を表示する

前にPerlで書いたフィルタースクリプトです。 主な機能は、指定したキーワードを見易いようにANSIエスケープシーケンスでマーキングすることです。ログを読むときに、蛍光ペンを引いたようにキーワード部分を読み易くしたくて作成しました。 また、-fオプシ…

シンプルなダイナミックリンクライブラリ(DLL)【3/3】

『【1/3】DLLを作成してみる』で作成したDLLを利用するアプリケーションを書いてみる。 繰り返しになりますが、想定しているのは以下のプラットフォーム(開発環境)です。 WindowsのDLLファイル(Visual Studio) LinuxのSOファイル(gcc) CygwinのDLLファ…

シンプルなダイナミックリンクライブラリ(DLL)【2/3】

『【1/3】DLLを作成してみる』で作成したDLLを利用するアプリケーションを書いてみる。 繰り返しになりますが、想定しているのは以下のプラットフォーム(開発環境)です。 WindowsのDLLファイル(Visual Studio) LinuxのSOファイル(gcc) CygwinのDLLファ…

シンプルなダイナミックリンクライブラリ(DLL)【1/3】

C言語でシンプルなダイナミックリンクライブラリを書いてみる。 単一のC言語ソースで、複数アーキテクチャ向けの共有ライブラリとしてビルドすることを考える。 想定しているのは以下のプラットフォーム(開発環境)です。 WindowsのDLLファイル(Visual Stu…

FIFOを使ってプロセス間通信する

昔に書いたFIFOを使ってプロセス間通信をするシェルのサンプルスクリプトを見つけた。 全然覚えていない。 スクリプト中身を確認すると、FIFOを3つ作って、1つは読み書き用、残り2つは通信する2つのプロセスの状態を通知する為に使っているみたい。通信を5往…

ANSIエスケープシーケンスを使えない環境に対応する

目次 ANSIエスケープシーケンスとは ANSIエスケープシーケンスの使用例 ANSIエスケープシーケンスの制御コードは邪魔になることも… 制御コードを抑制する為の条件は…? isatty()関数のドキュメント STDOUT(標準出力)の出力先によって切り替える 端末エミュレ…

コマンドラインでWindowsとChromeブラウザのバージョンを取得する方法

不定期ですが時々PCのバックアップをしています。 その時に、前回からどんな変更があったのかを書き留めておきたくなり、代表的なソフトウェアで且つ頻繁にアップデートされるものが良いと考え、OS(Windows10)とブラウザ(Chrome)のバージョンを残すことにし…