korechi’s diary

とあるVR/ARエンジニアのブログ

2015-10-01から1ヶ月間の記事一覧

条件分岐のいろいろ

フォークスルー 例えばswitch文はC, C++で使われているがC#では禁止されているらしい。 case内でのbreakのし忘れが頻繁におこったためだとか goto goto文はifやswitchと違い、無条件に処理の流れを変える命令。そのため、あまり推奨されない。以下の2つの場…

Linuxで接続待ち(中)のポートを切る方法

netstat -a | grep localhost とコマンドを打つと、接続がきれたsshを終了させるか待ち状態になっていることがある。 そのポートを閉じたいときは-pオプションをつけるとプロセスIDが左に表示されるので kill <PID> で閉じることができる</pid>

時間計測(C,C++)

時間計測を行うサンプルコードをのせる。 単位はmsであることと、<sys/time.h>をインクルードすることに注意 struct timeval start_timeval, end_timeval; double sec_timeofday; gettimeofday( &start_timeval, NULL ); /* do something */ gettimeofday( &end_timeval,</sys/time.h>…

マルチスレッド処理(C++)

マルチスレッド処理をC++で行う場合のコード例をのせる。 ソースコード #include <iostream> #include <thread> #include <exception> using namespace std; void do_worker1 (int a, int b) { // do something } int main (int argc, char *argv[]) { try { // スレッドを分けて処理 std:</exception></thread></iostream>…

Macでwindowsキーボードを使う時のあれこれ

結構簡単にできる。特にmacは簡単に 1. CapsLock, Control, Option, Commandキーを変更 「環境設定」=>「キーボード」=>「Modify Keys」 ・Caps Lock =>Control ・Control => Control ・Option => Command Key ・Command key(WinKey) => Option 2. 変換…

ドライバ内でのパケット作成

sk_buff 基本的には、sk_buffを使う。使い方は以下に例をのせる。 #include <linux/skbuff.h> #include <linux/if_ether.h> #include <linux/ip.h> #include <linux/udp.h> struct sk_buff *skb; skb = alloc_skb( sizeof( struct ethhdr ) + sizeof(struct iphdr) + sizeof( struct tcphdr ) + LL_MAX_HEADER, GFP_ATOMI</linux/udp.h></linux/ip.h></linux/if_ether.h></linux/skbuff.h>…

デバイスドライバ作成の注意

とにかくkmallocしたらkfreeをする まじでこれ。PCがフリーズしたらまずこれを疑ったほうが良い。 どこかでkfreeをし忘れていないかどうか念入りにチェック。 ありえんポインターを参照していないか kmallocもしていないところを参照していないか。それをし…

USBメモリをコマンドから使用する(CentOS)

簡単そうに見えて意外とできない、コマンドラインからUSBデバイスを使用する方法をまとめました。 コマンドは3つだけ。 1. dmesgでデバイス名を確認 USBをさしてから $ dmesg をして、 usb-storage: device found at 4 usb-storage: waiting for device to …

CentOSの初期設定

カーネルをいじくりまわしていたらthriftの挙動がおかしくなり、回復しそうにないのでPCを変更した。 簡単な初期設定に必要なあれこれをまとめておく。 sudoの追加 # su # visudo ここで ## The COMMANDS section may have other options added to it. ## ##…

CentOSからgitを使う

使い方 基本はいつも通りに $ git init $ git add . $ git commit -m "コミットメッセージ" $ git remote add origin <リモートリポジトリのURL> でリポジトリは作成できる。しかしpushを行うと Gtk-WARNING **: cannot open display: とエラーになる時があ…

サーバーの再起動

サーバーを再起動することはどうしてもある。 そこで、再起動したあとの設定をまとめておく。(今までの記事と被る部分があるが結構昔に書いたものもあるので) ネットワークまわり sudo service iptables stop sudo service ip6tables stop sudo service Ne…

リバースポートフォワーディングまわり

ssh

参考記事 DHCPクライアントとして起動するマシンはIPアドレスが変動するため、IPアドレスを確認してからでないとSSHログインができない。 そこでSSH接続用ゲートウェイマシンを用意して、DHCPクライアントとして起動するマシンからSSHリバースポートフォワー…

NICの使い方

NIC

PCにNICをさす。(本研究ではMellanox 10Gを使用) ドライバがうまくインストールされれば使えるようになり、 $ ifconfig して、em1というのが表示されていれば良い。この状態ではまだIPアドレスが与えられていない。 表示されていないなら、insmodをする必…