タグ

ブックマーク / www.ne.jp (7)

  • UNIXキー操作メモ(Hishidama's UNIX-key Memo)

    stty どのキーを押した場合に何の動作をするかを設定/表示する。[2006-04-16] つまり上記のキー操作は、起動時に(sttyを使って)設定されたキー入力動作だということ。 現在の設定の表示 >stty -a speed 38400 baud; 行数 = 24; 桁数 = 80; 縦方向ピクセル数 = 0; 横方向ピクセル数 = 0; csdata ? eucw 1:0:0:0, scrw 1:0:0:0 intr = ^c; quit = ^\; erase = ^?; kill = ^u; eof = ^d; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^q; stop = ^s; susp = ^z; dsusp = ^y; rprnt = ^r; flush = ^o; werase = ^w; lnext

  • C言語execメモ(Hishidama's C "exec" Memo)

    S-JIS[2012-11-17] exec系関数 execは、C言語で別プログラムを実行(execute)する関数。 概要 exec系の関数は、別プログラムを実行する。 「exec」という関数そのものは無くて、execl・execv・execvp等のいくつかのバリエーションがある。 exec系関数によって別プログラムを実行すると、制御はそのプログラムへ移行し、自プログラムへは戻ってこない。(execの実行に失敗した場合だけ戻ってくる) 自分の処理を続行したい場合はfork()と組み合わせて使用する。 →forkと組み合わせる例 別プロセスを実行する方法は、execの他にもsystem(シェルの機能を使ってコマンドを実行する)やpopen(パイプで通信可)等がある。 execの種類 execl(exec「L」)は引数が可変長引数になっていて、execv(exec「v」)は引数が配列になって

  • TCPメモ(Hishidama's TCP Memo)

    片方が他方に対して何らかの電文を送ると、相手は受け取ったという印にACKを返す。 ACKが来なければ相手が受け取っていないということなので、その場合はある程度待ってから再送する。 ACKは他の電文と一緒に送ってもよい。 コネクションは、【相手先IPアドレス・相手先ポート・自分のポート】の組で一意に表される。 コネクションは現在どういう状態にあるかを示すステータスを持っており、イベントに応じて遷移していく。netstatコマンドで表示されるのは、これ。 TCP/IPとソケットの関係 ソケット関数を呼び出すと、ソケットライブラリ(プロトコルスタック?OS?)がTCP/IPの規約に従って通信を行う。 listen(受付開始) サーバー側で接続の受付待ちを開始する。 コネクション(通信相手はいないので、相手先IPアドレス・ポートは無し、自分のポート番号だけ有り)はLISTEN状態になる。 conn

  • C言語setjmp/longjmpメモ(Hishidama's C "setjmp/longjmp" Memo)

    S-JIS[2012-11-23] setjmp/longjmp関数 longjmp()は、setjmp()した場所へ跳ぶC言語の関数。 概要 longjmp()は、関数をまたいで跳べるgotoのようなもの(ただし“元の場所”へ戻ることしか出来ない)。 C++Javaのthrow-catchに近い。 例 #include <stdio.h> #include <setjmp.h> jmp_buf jmpbuf1; void sub(void) { printf("sub start\n"); longjmp(jmpbuf1, 123); printf("sub end\n"); } int main() { printf("main start\n"); int c = setjmp(jmpbuf1); if (c == 0) { // 最初にここが実行される sub(); } else

    akanehara
    akanehara 2015/06/24
    [setjmp/longjmp]
  • C言語メモ(Hishidama's C Memo)

    C言語のメモです。 インストール方法 [2016-04-09] 基礎知識 [/2010-05-19] プリプロセッサ命令 [2006-10-30] sizeof演算子 [2008-01-28] 標準Cライブラリー strtok(単語分割) [/2006-10-17] longjmp(長距離ジャンプ) [2012-11-23] UNIX(POSIX) fork(子プロセス生成) [2012-11-17] exec(別プログラム実行) [2012-11-17] pipe(パイプの生成) [2012-11-17] Windows API CreateProcess(子プロセス生成・別プログラム実行) [/2013-01-15] CreatePipe(パイプの生成) [2013-01-10] ConsoleCtrlHandler(コンソールアプリのシグナル) [2013-01-10] Cutter

  • Hadoop分散環境メモ(Hishidama's Hadoop distributed Memo)

    S-JIS[2011-09-25/2012-01-07] 変更履歴 Hadoop(仮想)分散環境 Hadoopの分散環境を、VMware Playerを用いた仮想マシンを使って構築してみる。 複数の仮想マシンを起動してHadoopクラスターを組む。 CentOSへのインストール CDH3版Hadoop体がCentOSへインストールされている前提。 そのCentOSをNameNodeとし、VMイメージをコピーしてDataNodeを作る。 VMware上のCentOSを起動し、rootユーザーでログインする。 NameNodeやDataNode用のデーモンを起動する為のシェルをインストールする。# yum install -y hadoop-0.20-namenode # yum install -y hadoop-0.20-datanode # yum install -y hadoop-

  • ソケット通信メモ(Hishidama's TCP/UDP Socket Memo)

    TCPソケット サーバータイプとクライアントタイプの両方のアプリケーションを作らないといけないなら、サーバータイプから作るべきだろう。 (クライアントタイプだけ先に作っても動かせないから。まぁサーバータイプだけ動かしても、待ってるだけであまり意味無いけど(苦笑)) でも仕組みはクライアントタイプの方が簡単。 TCPを使う場合は、通信の最初にコネクションの確立を行う必要がある。 サーバーでlisten・accept、クライアントでconnectが成功すればコネクションが確立したことになる。 どのポート番号を使うかについては、サーバー側はアプリケーションの作成者が決める必要がある。[/2007-06-16] クライアント側のポート番号は、ソケットライブラリがそのマシンで使っていない番号を自動的に割り振ってくれるので、気にしなくてよい。 IANAの基準では、1~1023は「よく知られたポート(w

  • 1