へっぽこ社会人4年生がプログラミングを頑張る

へっぽこ社会人4年目がプログラミング系統を中心に書きたいことをつらつらと書きます

2016-01-01から1年間の記事一覧

システムコールで遊んでみる その4

今回は、システムコールforkやwaitなどについて書いていこうと思います。 forkを呼び出すことで、 子プロセスの生成が出来ます。 また、waitを呼び出すことで、 親プロセスが子プロセスの終了を待ちます。 以下にプログラム例を示します。 #include <stdio.h> #includ</stdio.h>…

PerlでGraphVizのグラフを生成する

前回、GraphVizを使ったグラフの生成方法について書きました。 今回はdot言語ではなく、Perlでプログラムを記述してグラフを生成します。 ディレクトリの内容物を再帰的に取得してグラフ化したり、CGIプログラムに応用するなど、使い方は様々だと思います。 …

GraphVizを使って簡単にグラフを生成する

以下のようなグラフを作りたい時、GraphVizが便利なんです。 ディレクトリ構造をGraphVizを用いて表現 GraphVizはdot言語に記述されたコードからグラフを生成します。上のグラフを生成するためのコードは以下の通りです。 graph g { "public_html" [ shape =…

FreeBSDのPerlやbashのパスについて

Mac OSXやLinuxなどでbashやPerlのスクリプトを記述する際に、 スクリプトファイルの先頭の行に #!/bin/bash や、#!/usr/bin/perl のように記述します。 これは、bashが/bin/bashに、 Perlが/usr/bin/perlに存在する環境であれば正常に動きます。 ところで、…

Raspberry Pi のWi-Fi設定についての備忘録的なもの

自宅のネットワーク環境を一新したので、自分のRaspberry Piのネットワーク設定も変更したのですが、以前の環境で固定IPの実験をしていたので、DHCPに一旦直すのに手こずってました。 そこで、備忘録的な感じで、Raspberry PiでのWi-Fiの設定について書いて…

Cの構造体へのポインタのキャストを考える

C

Cでソケットプログラミングをする時なんかに、 構造体struct sockaddr_inを bindやaccept, connectなどの関数に渡す際に、 struct sockaddr*にキャストして渡します。 正直、僕にとっては、構造体へのポインタのキャストって、 イメージしづらい と感じます…

Perlでファイルを逆順に読む

Perlでファイルを下から1行ずつ扱いたい時、File::ReadBackwardsモジュールが便利なんです。 まあ、頻繁に逆順で読むのか、というと、そうではないのですが、いざ逆順に読みたいという時には便利です。 標準ライブラリではないはずなので、CPANからインスト…

PHPのGDを齧ってみる

PHP

PHPの独学に用いた参考書の中に、GDで画像操作が出来るというのを知ったのですが、色々応用して使ってみたいと思うようになったので、ちらっと齧ってみることにします。 以下はテキストフォームから文字列を受け取り、画像として出力するプログラムです。 入…

JavaScriptの即時関数内でarguments.calleeプロパティを使って再帰する

JavaScriptでプログラムを組んでいて、使い捨ての関数を再帰的に呼び出したいと思い、即時関数とarguments.calleeプロパティを使うことにしました。 arguments.calleeプロパティはJavaScriptの参考書で読んだことあるので知っていたんですが、いつ、どこで即…

JavaScriptのメソッドで自身のクラスの他のメソッドを呼び出したい

タイトルが長ったらしいですが、実際に自分が詰まったので、このタイトルで書くことにしました。 例えば、Hogeクラス内に、hogeメソッド、hogehogeメソッド、piyopiyoメソッドを定義し、hogeメソッドから3秒カウントダウンする間にhogehogeメソッドを呼び出…

システムコールで遊んでみる その3

今回はlseekというシステムコールについて、適当に書いていこうと思います。 lseekは、ファイルポインタを指定の位置に動かします。 プログラム例を以下に示します。 #include <fcntl.h> #include <unistd.h> int main(int argc, char **argv) { int fd; char buf[65536]; if(ar</unistd.h></fcntl.h>…

UNIX ファイルディスクリプタに触れてみる その2

UNIX ファイルディスクリプタに触れてみる その1では、 標準入力、 標準出力、 標準エラーについて書きました。 今回は、リダイレクションについて書こうと思います。 また、3以上のファイルディスクリプタについても軽く触れようと思います。 リダイレクト…

UNIX ファイルディスクリプタに触れてみる その1

システムコールで遊んでみる その1 やシステムコールで遊んでみる その2でも出てきていますが、UNIXシェルから見ていくことにしましょう。 ファイルディスクリプタ(file descriptor)はファイル記述子とも呼ばれます。 Cのヘッダファイルunistd.hでは標準入力…

システムコールで遊んでみる その2

前回はreadとwriteについて書きました。 今回はopenとcloseについて、簡単に書いていこうと思います。 まだ自分自身も勉強途中なので、ちゃんとは説明出来ないんですけどね... 以下は引数に指定したファイルをオープンして標準出力に表示するプログラムです…

システムコールで遊んでみる その1

最近のマイブームは、 システムコールを使った Cプログラムを組むことです。 というわけで、 気が向いた時に、ちょいちょいと システムコールで遊んでみたことを 書いてみようかなと思います。 さて、前置きが長くなりましたが、 今回はreadと writeについて…

Raspberry Pi 3 を入手した

念願の というと大袈裟ですけれど、 Raspberry Pi 3を 手に入れました。 Raspberry Pi 2から、色々 進化したらしいんですが、 個人的には、次の2点に 目がいきました。 無線LANの搭載 Bluetooth対応 今までUSBドングルを差し込んで、 それぞれに対応してたん…

ターミナル上で色付き文字を書く

プログラムを組んで、 シェルに文字を画面に、 単に出力するだけではなんかつまらない。 色とか付けれたら ちょっとは華やかになりそう。 ということで シェルへの出力を装飾しよう! まだ詳細は勉強中ですが、 エスケープシーケンス というものを使って、 文…

ブログ始めてみました

書きたくなったので、 書いてみることにしました。 とりあえず、思いついた時に、 適当になんかつらつらと書こうと思います。 更新頻度もまちまちです... 基本的には、プログラミングやUNIXシェルについてつらつら書いてみようかなと。 主にUNIX/Linux環境に…