サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
中東情勢
alexei-karamazov.hatenadiary.org
オープンソースのコンパイルで失敗する原因のほとんどは、ライブラリorヘッダファイルが存在しない・ライブラリorヘッダファイルのパスが誤っているのいずれかになります。後者の場合自分でMakefileを修正しなくてはなりません。そこでgccのオプションに関する知識が必要になります。 デフォルトでのライブラリとヘッダファイルの読み込み 簡単なプログラムのコンパイルでも-vオプションを付けると、以下のように普段は見えない多くの自動的に付与されたパラータが見られます。ここかヘッダファイルとライブラリに関する情報を読み取ってみます。 [root@new-host code]# gcc -v test.c Using built-in specs. Target: x86_64-redhat-linux コンフィグオプション: ../configure --prefix=/usr --mandir=/u
ネットワークプログラミングの難しさとは C言語のネットワークプログラミングは、システムコールや構造体が複雑でやや苦手意識があります。勉強の意味をこめてまとめてみました。 しかし、ネットワークプログラミングの基本で本当に難しいのは、そうした複雑さではなく、ファイルディスクリプタとプロセス間通信の概念だと思います。 以前ネットワーク通信の勉強したとき、下のソースコードが何をやっているのか全くわからりませんでした。プロセス間通信とファイルディスクリプタの概念がわかって初めてソースコードの意味がわかりました。 結局プログラミングの勉強で本当に難しいのは関数の仕様や処理の流れではなく、それらの背後にどのような概念があるのか、ではないでしょうか。 TCP通信を行うサーバプログラムの処理の流れ ネットワーク通信は、異なる端末間のプロセス同士がストリームを介してバイト情報の送受信を行うプロセス間通信である
サーバのプログラムでAddress already in useのエラーが発生する原因は、サーバがTIME_WAIT状態になっている、一時的に利用不可能なポート番号を利用しようとしているからである。 TIME_WAIT状態は、サーバ側でプロセス終了後に別プロセスが同一のポート番号を利用しないようにするのが目的である。仮にサーバのプロセス終了後に、同一ポート番号を別プロセスが即時に利用した場合には、クライアント側からネットワーク上で遅れていたパケットが、この時間内に到着し、「混入」してしまう可能性がある。 そのためTIME_WAIT状態は、サーバ側からクライアントに対してセッションを切断した場合(アクティブクローズ)の場合に発生する。サーバ側から切断した場合には、クライアントから遅れてパケットが届く可能性があるからである。 逆にクライアント側からセッションを切断した場合(パッシブクローズ)に
Ubuntuのカーネルのバージョンが新しすぎると、openvswitchでgreトンネルが動作しませんでした。そのためUbuntu12.04にてカーネルのダウングレードする必要があったので、以下にメモしました。ソースを落としてコンパイルするのは時間がかかるので、aptコマンドのみで挑戦してみました。 現行のカーネルのバージョンは以下のように3.5.0-23-genericになります。これを3.2.0-49-lowlatencyにするのが目標です。 # uname -a Linux NetworkServer3 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux カーネルのインストール 以下のコマンドでaptコマンドでインストール可能なカーネル
普通に使う分には市販のブロードバンドルータでも十分ですが、ネットワークの実験をする際にはDMZ等の設定の機能が不十分と感じました。そこで、Linuxが入ったノートPCのThinkPad T30をルータ化させようと思います。 Step0 検証環境 利用マシン ThinkPad T30 利用OS CentOS 6.3 カーネル 2.6.32-279.el6.i686 Step1 ドライバに関する情報の入手 ルータとして使うには、NICが2枚ほしいところです。しかし、ノートPCには1枚しかNICがありません。そこでUSB経由の外付けNICを認識させます。 今回買ったのは、LAN-GTJU3です。完全に勢いで買いました。本来WindowsもしくはMAC用なので、Linuxで認識してくれるかは完全に不明です。 まずドライバをマシンに入れなくてはなりません。lsusbコマンドや/var/log/mes
psコマンドのTTYの行では、以下のようにttyやptsが表示される。 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2542 0.0 0.0 3816 496 tty1 Ss+ 10:23 0:00 /sbin/mingetty root 3176 0.0 0.3 66120 1596 pts/1 Ss 10:24 0:00 -bash root 3206 0.0 0.1 65648 1012 pts/1 R+ 10:24 0:00 ps auxこれらは、PCと接続している入出力用の端末を指している。 ptsはsshなどの仮想端末であり、ttyは実端末を意味している。 root@pide-FRONTIERDT:/dev/cpu# ls /dev/tty* /dev/tty /dev/tty23 /dev/tty39
このページを最初にブックマークしてみませんか?
『alexei-karamazov.hatenadiary.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く