execve()システムコールを呼び出さずに、静的にリンクされたバイナリをexec()できるCライブラリが必要です。システムコールが機能しない理由は、バイナリファイルが実行可能ではなく、そのシステムで実行可能にすることができないためです。動的にリンクされたバイナリの場合、実行/lib/ld-linux.so.2 progname
するとうまくいきますが、静的にリンクされたバイナリではそのセグフォールトが発生します。
http://archive.cert.uni-stuttgart.de/bugtraq/2004/01/msg00002.htmlでul_exec1.1を見つけましたが、それは私のシステム上の独自のHello、Worldバイナリのセグメンテーション違反のようです。
1つのオプションは、バイナリのコピーを作成し、そのコピーを実行可能にして、execve()を呼び出すことです。私はそのようなコピーを必要としない解決策を探しています(パフォーマンス上の理由から)。