tomyamaのブログ

日記・雑記。

プログラム

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

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

ドメイン名の階層順にソートするコマンド

昔に書いたPerlスクリプトです。 サーバー管理をしていたころ、大量のドメイン名やIPアドレスを扱う事が多く、読み易くしたいので階層順に並べ替えるスクリプトを書いて使っていました。 目次 目次 ドメイン名とは?ドメイン名の構造 実行例 ドメイン名(の…

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

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

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

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

IPアドレスのサブネットを計算するスクリプト

昔に書いたPerlスクリプトです。 PATH が通っている /usr/local/bin に入れて使用しています。 IPアドレスとサブネットマスクを入力すると、ネットワークアドレスとブロードキャストアドレスを表示します。この2つのアドレスの間が、そのネットワークで端末…

cronデーモンの実行予定を見易く表示するスクリプト

昔に書いたPerlスクリプトです。PATHの通っている /usr/local/bin/ に置いてコマンドとして使用しています。 cron daemonのスケジューリングを確認したい時に使います。 cronデーモンとは? Unix系のOSには、cronというデーモン(サービス)があります。時間…

Intel CPUのアセンブラ

MicrosoftのVisual Cに、gdbのようなコマンドラインで使えるデバッガは無いのかな?と思って、コンパイラ(cl.exe)やリンカ(link.exe)が置いてあるフォルダを眺めていたら、アセンブラを発見しました。名前は『ml.exe』です。Intel CPUのアセンブラは全く…

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

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

トルクの単位換算

トルクの単位は、以前は「kgf・m」が使われていましたが、今は「N・m」に変わっています。 昔の車両のサービスマニュアルを見ると、トルク管理の単位が「kgf・m」で書かれているのですが、現代のトルクレンチは「N・m」なのです。逆もまたしかりで、昔に買っ…

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

C言語 pause() シグナルを待つ

C言語の「pause()関数」のサンプルプログラムです。 pause() シグナルを待つ 準拠 SVr4, 4.3BSD, POSIX.1-2001. #include <unistd.h> int pause (void) ; 呼び出したプロセス(またはスレッド)を、シグナルを受け取り、終了させられるか、シグナル捕獲関数が呼び出され</unistd.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…

月齢の簡易計算機

指定した日付から7日間の月齢を計算して表示するフォームです。 /********************************************//** * 月齢を返す。 * * グレゴリオ暦から月齢を計算する。 * 最大2日程度の誤差がある。 ************************************************/…

祝日を確認する

指定した日付を中心に前後の祝日をピックアップして表示するJavaScriptのフォームです。 //let eraNames = [ '西暦', '明治', '大正', '昭和', '平成', '令和' ]; let jh0921; let importScr0921; let httpReq0921 = new XMLHttpRequest(); httpReq0921.open…

【単位換算】西暦・元号 変換

西暦と元号を相互に変換します。 let eraNames = [ '西暦', '明治', '大正', '昭和', '平成', '令和' ]; let jh; let importScr; let httpReq = new XMLHttpRequest(); httpReq.open( 'GET', 'https://tomyama.hatenablog.jp/entry/2022/09/19/033320' ); ht…

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

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

【単位換算】タイヤの空気圧、単位がいろいろ問題

自転車やバイク、車にはタイヤがついていて、たまにチェックしないと、思いの外、空気圧がずれていることがある。 季節が変わり気温が大きく変化したような時期には特にチェックしておいた方が良い。 空気圧を計測する際に困るのが、色々な単位が使われてい…

Amazon Fire 7でポータブルな開発環境

Amazonが販売している「Fire 7」という小さいタブレット端末を持っています。 2019年に発売された第9世代のモデルで、今現在販売されている物より1世代前の製品です。 このタブレットはKindle本を読んだりするのに丁度良いかな、と思って購入したのですが、…

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

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

HatenaBlogでJavaScriptは使えるのか?

document.write("JavaScriptを普通に記述できるみたい。");