minitalk
fprintf
ファイルに文字列を書き込む
htonl
host byte order to network long byte order
ホストのオーダーをネットワークのバイトオーダーに変換
ネットワークのバイトオーダーはビッグエンディアンでホストのバイトオーダーは(リトル or ビッグ)であるので、それを認識して変換してくれる関数
htons (host byte order to network short byte order)も存在する。
longが32bitでshortが16bit
ipアドレスを変換するのは32bit
inet_addr
IPv4の数値とドットによる表記からネットワークバイトオーダでの バイナリ値へ変換して返す。
数値とドットを自動に変換してくれるので、便利。
perror
文字列を標準エラー出力する
やること
getpidで取得したpidに対して、killコマンドによりシグナルを送信する。
送信するシグナルはSIGUSER1で定義。
定義するときに、sigaddsetを使用する。
また、sigaction or signalによってシグナルを受信する。
こちらのスクリプトで妥当性を図る
#!/bin/bash
pid=0
for i in {1..100000}; do
: &
if [ $! -lt $pid ]; then
echo "Min pid: $!"
echo "Max pid: $pid"
break
fi
pid=$!
done
こちらヘッダーでPID_MAXが定義されている。
PID_MAX = 99999
またpidを生成する関数: forkproc関数で定義されている条件が <= PID_MAX
とあるので、実質PID_MAX - 1 = 99998
となる。
sw_vers
でversionを確認し、wikipediaでxnuを確認
darwinのバージョンを確認する。
ちなみにMojaveの10.14.6はxnu-4903となる。
ソースコードをダウンロードして、bsd/kern/kern_fork
を確認。
噂によるとxnu-792に30000だったのが、99999に変更になったらしい
結局 Macでは MIN = 100, MAX = 99998
unicodeについて調べたい所存
tmux使い方
ctrl-b %
新しいwindow
ctrl-b ← or →
windowの移動
標準入力で第2引数にfileを渡すやり方
ヒアドキュメントのEOF & fileのところでいけるかも?ランダム文字列生成
cat /dev/urandom | base64 | fold -w $length | head -n 1