All articles in c-language

GNU Readlineを使ってみる

GNU RreadlineはCUIに劇的な利便性をもたらす偉大なライブラリでありながら,これを使用するプログラムを作成したことがないので,作成してみた.GNU Readlineって何だ?準備readlineヒストリサンプル GNU Readlineって何だ? GNU readlineは,GNUプロジェクトにおいて開発された,文字列入力用ライブラリである. Bashの入力プロンプトでタブ補完ができたり,↑や↓で入力ヒストリを参照できたり,emacsライクあるいはviライクなキー操作ができるのは,GNU readlineによる. GNU readlineはCUIに劇的な利便性をもたらし,GNUにおける代表的成果物としての座をしめている(※).※ LGPLに関するGNUの戦略について記述された頁である「あなたの次のライブラリにはライブラリGPLを適用するべきでない理由」などでも, 準備 Debian GNU/Linux環境では以下をしてライブラリやヘッダファイル等を入手しておく.apt-get install libreadline5 libreadline5-dev readline GNU … More GNU Readlineを使ってみる

C言語

C言語をやってみよう,ふと思い立った.かなり久しぶりだ.大学当時Cは講義であった.学生時代怠けまくった結果(?)私はCよりも,趣味でやっていたJavaの方が書いたコードの行数は多い.だが,やはり「たしなみ」としてC言語はやっておかねばなるまい.基本(?)ライブラリ編プロセス制御シグナルパイプIPCPthreadSocket端末制御cursesCUnitOpenSSLを使用したCプログラミングその他 基本(?)ライブラリ編 とりあえず,ライブラリにある関数をいろいろ試してみる.もちろん(?)Debian環境で. ファイル操作2003-07-20T15:13+09:00 matsuGNU/Linuxシステムでのファイル操作について.ここでは特にシステムコールを用いてファイル操作する方法について.標準入出力ライブラリでのファイル操作2003-07-20T15:13+09:00 matsu標準入出力ライブラリを使用するとファイル操作がしやすく,バッファリングなども効くので便利である.標準入出力ライブラリによるファイル操作 その22003-07-20T15:13+09:00 matsu標準入出力ライブラリによるファイル操作についてもっと.書式付き入出力とストリームエラー2003-07-20T15:13+09:00 matsuprintf族とscanf族による書式付き入出力と,入出力時のエラーについて.コマンドライン引数の取得とgetopt2003-07-20T15:13+09:00 matsuコマンドライン引数を取得する方法と,それを簡単に行なうライブラリ関数getoptについて.コマンドライン引数の取得 その22003-07-20T15:13+09:00 matsu関数getopt_longは長い形式のオプションの取得に便利な関数である.これはGNU拡張らしい.長いオプションは大抵–で始まる.環境変数2003-07-20T15:13+09:00 matsuHOMEやUSERなど,環境変数に応じた処理をしたくなることもあろう.なので,環境変数を取得したり設定したりできると嬉しい.日付と時刻2003-07-20T15:13+09:00 matsuプログラムによっては日付や時刻を取得する必要がある.コンピュータで日付や時刻を操作する場合は,「エポックの起点」からの経過秒(もしくはミリ秒)をもとに行うことが多いようだ(もちろんlocaleも考慮する).「エポックの起点」はシステムによるが,UNIXではGMT 1970年1月1日0時らしい.epochを辞書で引いてみたら,「ある特徴のある時代」らしい.ネットで調べると,「基準時刻」と訳してあったりする.こちらの方がわかりやすいだろうか.ユーザ情報2003-07-20T15:13+09:00 matsuユーザ情報というと,アカウント名,uid,gidなどである.これらの情報が実際のプログラミングでどう使用されるのかは,ちょっとわからないが,取得できないよりはできるほうがいい.ホスト情報2003-07-20T15:13+09:00 matsuプログラムを実行しているマシンの各種情報の取得の仕方.ロギング2003-07-20T15:13+09:00 matsusyslog関数によるロギングについてリソース情報の取得と設定2003-07-20T15:13+09:00 matsuプログラムを実行する際のリソース情報(とくにリソースの制限)を取得する必要がある場合がある.マイクロ秒の取得とナノ秒でのスリープ2007-05-13T13:50+09:00 matsutime関数やsleep関数は秒単位でしか処理できないが,ミリ秒とかマイクロ秒とか,より高精度な処理をしたいときのための関数,gettimeofdayとnanosleepを試してみたプロセス制御プロセスがプロセスを生んで殺してまた生んで…..そして死ぬ.関数system2003-07-20T15:13+09:00 … More C言語