mplayerの-loop option
mplayerいいっすよねー。
何でも再生出来ますよねー。
唐突ですが、ループについて
mplayerで動画・音声を繰り返し再生するときは-loopが使えます。 -loopの後は繰り返す回数で、0ならforever. mplayer -loop 0 hoge.mpg # hoge.mpgを永久再生
とまあ調べるとこう出てきます。間違ってないというか正しいです。
ですが、同じhoge.mpgをループしてるのにいちいちウィンドウが消えたり表示されたりするし、
再生途中に操作したSpeedとかが保存されないのでつらいですよね。
こうするとうまく行きます。
mplayer hoge.mpg -loop 0 # hoge.mpgを永久再生
man mplayerを見るとわかるとおり、
mplayer [options] file1 [specific options] [file2] [specific options]....
です。
optionsに-loopすると全体に適用されますが、
specific optionsに-loopすると一つのファイルに適用されます。
多分そんな感じの解釈のために、先のような違いが起こるんだろうなと。
ちなみに
mplayer { hoge.mpg -loop 3 fuga.mpg } -loop 2
とすると、hoge hoge hoge fuga hoge hoge hoge fugaとなるわけですが、
mplayer -loop 0 hoge.mpg mplayer { hoge.mpg } -loop 0
だと似たような感じになるのを確認しました。
1ファイルをループ再生するんなら、specific optionsのほうがうまいんじゃないかなぁと思っただけです。
syscalls
-
- Linux前提で話を進めます --
- 完全に自分の環境の話ですLinux3.9.7 --
まあ、自分で全部書いたことなんて実はないんだけど、
いろんなところからshellcodeをダウンロードしてきます。//今なら書ける気がする
そうすると必ずint $0x80ってのがあるわけです。x86だと。
これがsyscallなわけですが、eaxにその番号をいれますよね。気になったので。
man syscallより
arch/ABI | instruction | syscall # | retval | Notes |
arm/OABI | swi NR | - | a1 | NR is syscall # |
arm/EABI | swi 0x0 | r7 | r1 | - |
blackfin | excpt 0x0 | P0 | R0 | - |
i386 | int $0x80 | eax | eax | - |
ia64 | break 0x100000 | r15 | r10/r8 | - |
parisc | ble 0x100(%sr2, %r0) | r20 | r28 | - |
sparc/32 | t 0x10 | g1 | o0 | - |
sparc/64 | t 0x6d | g1 | o0 | - |
x86_64 | syscall | rax | rax | - |
覚えるべきgdbコマンドの続き
http://cookies.hatenablog.jp/entry/2012/09/29/203439 の続き。
disasはまあよいんだけど、そのアドレスを含む関数全部出力されちゃうし、いろいろあったりするので。
x/i | 値を機械語として扱い、逆アセンブル |
d | breakpointとか削除 |
dis | breakpointを一時的にdisable |
en | brekpointをenable |
あと、
・rとだけすると、前回の引数がまた使われる。
・rはシェルにそのまま渡すような感じなので、バッククォートによるシェル実行とか、リダイレクトとか普通に使える。
なかなか使えますねgdb。すごい。
WordPressのリダイレクト
サイトを巡回しつつ、URLいじくってたら、どこもかしこも
http://example.com/aにアクセスしたら/aboutに飛ばしてくれて、
/bにアクセスしてもbで始まるURLに飛ばしてくれるので、何かと思ったら、
たぶんみんなWordPressを使ってたっぽい。
初めて知った。
そうだよね、パーマリンクの形を変更したら以前のがみんなリンク切れとかになりかねないもんね。
ArchLinux、/usr/binにまとめちゃうってよ。
こないだArchLinuxのinitscriptsが続々削除された旨の記事を書いたが、
こんどは(/bin, /sbin, /usr/bin, /usr/sbin), (/lib, /usr/lib)を統合しようとかいう大変革が。
https://www.archlinux.org/news/binaries-move-to-usrbin-requiring-update-intervention/
filesystemとかいうcoreにいるやつなんだが、(/bin, /sbin, /usr/sbin)の中身を/usr/binに移しやがる。
それで互換のためだと言いながら、/bin, /sbin, /usr/sbinから/usr/binへ飛ばすためのsymlinkを張ろうとする。
が、普通、/binとかってのは元からあるものなので、上書きできずにsymlink張りは失敗する。
意図された動作なのか違うのか、yaourt -Syuuaしたときに、(/bin,/sbin,/usr/sbin)の中身を/usr/binに移動こそすれ、symlinkが張られなかった。
すると何が起こるか。
もともと/usr/binにあるものはともかく、ほとんどのものが動かなくなる。
/bin/shすらないんだもの。
ここで焦ってrebootすると痛い目にあう。なぜってinitすら移動されている。
一番正しい安全な対処は、上に張ったリンクの通りだが、
最低限rm -rf /bin /sbin /usr/sbinしろということだったのだと今更ながら思う。
-
-
-
- 5日 0:17追記
-
-
書いてからもいろいろしたけど、なんとかなった。
全然責任は持てないけど、うまくいく場合もあるっぽいよ、ということで。
mv /bin/* /sbin/* /usr/sbin/* /usr/bin export PATH=/usr/bin:$PATH rm -r /bin /sbin /usr/sbin pacman -S filesystem
libのほうはどうやったか忘れた。操作したかどうかも覚えてない。
最後にはsymlinkが張られているのが確認できたし、たぶん成功したっぽ