iOS

Blocksをメソッドとして追加する

imp_implementationWithBlock()という、BlockからIMPを作り出す関数がiOS 4.3 or Lionから使えるようになったみたいなので、これを使って実行時にインスタンスメソッドを追加する実験例えば、モーダルウィンドウをクローズした時に自動的にstopModalするコー…

使用しているファイルの一覧を取得する

iOS

プロセスが使用しているファイルの一覧を取得する。 「c - on iOS/iPhone: "Too many open files": need to list open files (like lsof) - Stack Overflow」によると、fcntlでfdを舐めてパスを取れば良いっぽい。 #include <sys/param.h> #include <sys/fcntl.h> void show_openfiles(</sys/fcntl.h></sys/param.h>…

ファイルの一覧を取得する

iOS

NSFileManagerの-enumeratorAtPath:を呼ぶと、特定ディレクトリの下を深さ優先でトラバースするNSDirectoryEnumeratorオブジェクトを返してくれるので、それで全ファイルエントリを取得出来るようだ。但し、iTunesで買ったアプリなどは見えない*1。他にも見…

プロセスの引数を取得する

iOS

前回の続き。KERN_PROCARGS2で引数の情報も取得出来た。但し自分(mobile)がオーナーのプロセスのみ。rootで動ければ全部取れるかも。KERN_PROCARGSの方も試してみたけどiOS上ではうまく動かない(エミュレータなら環境変数まで取れたけど。)KERN_PROCARGS2は…

プロセスの一覧を取得する

iOS

前に書いたOS X用のプログラムがiOSでも普通に動いたわ。 さすがUNIXマシン。 #include <sys/sysctl.h> #include <pwd.h> #define MIB_NAMELEN 4 void show_processes() { int mibname[MIB_NAMELEN] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0}; // all processes struct kinfo_p</pwd.h></sys/sysctl.h>…