タグ

Cとunixに関するyamanetoshiのブックマーク (3)

  • ページャ - Plan9日記

    ページフォルトの話に続くと誤解されそうだが、今回はmore、pg、lessなどファイルページャの方の話。近所の図書館でO'Reillyの「UNIX Cプログラミング(Using C on the UNIX System)」を見つけた*1。今日のネタはここから。 ファイルを特定の行数でぶった切るだけの、素のページャを書いてみる。教科書的には、ioctl経由でttyドライバを制御する例になっている。書の発行は1991年なのだが(ターゲットは4.2BSD、4.3BSD、SVR2あたり)、ioctl直叩きはいまどきのUNIXじゃ動かないだろうから*2、termiosを使って書き直してみる。やっていることはファイルを22行表示して、端末をエコーオフ、非カノニカルモード化して入力を待つ、ということの繰り返し。main関数の先頭でモードを設定し、終了前に元の設定に戻している。 #include <st

    ページャ - Plan9日記
  • memccpy() で文字列をコピーする - bkブログ

    memccpy() で文字列をコピーする 詳解Unixプログラミングを読んでいたところ、標準入出力ライブラリの章に「この例からわかることは、行単位の関数は memccpy(3) を用いて実装されていることである」という記述がありました。 一瞬、memcpy(3) の誤植かと思いましたが、調べてみると 4.3 BSD で追加された関数ということがわかりました。 glibc に入っているので Linux でも使えます。 マニュアル によると memccpy() は次のような関数です。 書式 void *memccpy(void *dest, const void *src, int c, size_t n); 説明 memccpy() はメモリ領域src からメモリ領域dest に最大でnバイトコピーする。nバイトコピーする前に文字 c が見つかると、そこでコピーを中止する。 返り値 memc

  • http://www.comm.info.eng.osaka-cu.ac.jp/~sugi/vuniv98/index.html

  • 1