libc

    8

    1答えて

    システムコールをLD_PRELOADで事前に識別されたfdで置き換えようとしています。これを呼び出すプロセスが以前に作成した共有メモリオブジェクトを読み取ることができます。別のプロセスはboost::interprocessです。私が最後にmmap'edメモリを読み込もうとしたときを除いて、すべてうまくいく。その場合、最初のプロセスはセグメンテーション違反で中止されます。理由は何でしょうか?私は共

    5

    1答えて

    プロジェクトでは、私の同僚はアプリケーションとリンクしている静的ライブラリ(liba.aなど)を作成します。 liba.aでは、libc malloc()を所有者のバージョンに上書きします。 私は共有ライブラリlibs.soを作成し、これもappとリンクしています。 問題は私のlibs.soがアプリケーションにリンクしていて、libs.soで使用されているmalloc()がliba.aのlibmm

    5

    1答えて

    dlsym()とdlopen()のシステムコールのフックを実装する必要があります。フックから元のdlsym()を呼び出すには、このシステムコールのアドレスを取得する必要があります。私はそのようなライブラリのコンストラクタ関数でアドレスを取得しようとします。しかし、私はフック機能のアドレスだけを取得しています。 RTLD_NEXTと同様に、RTLD_DEFAULTとしてハンドラとして指定しようとしま

    9

    2答えて

    一部のLinuxツール(および自分のCコードの一部)をAndroidにクロスコンパイルしましたが、私が直面している課題の1つは、Androidのlibcに欠落/ Androidのlibc(例:http://credentiality2.blogspot.com/2010/08/compile-ncurses-for-android.htmlのような問題)のために私のコードにパッチを当てます。 Q1

    5

    2答えて

    同時にディスクに書き込まれているファイルを読み込もうとしています。私は特定のサイズのチャンクを読む必要があります。読み込んだサイズが特定のサイズよりも小さい場合は、ファイル(ungetcのようなもの)をunreadして、char []の代わりにもう一度やり直したいと思います。すでに読み込まれたバイトに追加することは、私の選択肢ではありません。 これはどのように可能ですか? FILE *fd = f

    23

    2答えて

    execvpのは、このように定義される: int execvp(const char *file, char *const argv[]); 使用されてからこのようなコードを排除どの: const char* argv[] = {"/bin/my", "command", "here", NULL}; execvp(argv[0], argv); これは偶発的な漏れましたか?これの周りに

    6

    2答えて

    $ printf 'int main(){}' | gcc -static -x c - -o hello $ scp hello vi-server.org:./ hello 100% 565KB 565.2KB/s 00:00 $ ssh -t vi-server.org "./hello; uname -r" FATAL: kernel too old sh: lin

    8

    5答えて

    libcで提供されている関数exit()のアドレス(16進数)を取得しようとしていますが、どこでどのように見つけられるのか分かりません。 誰かがそれを見つける方法を知っていますいくつかのアイデアを共有してください。ありがとうございました!

    9

    1答えて

    NSS(ネームサービススイッチ)にサービスを追加しようとしています。それを行う方法に関するGNUのガイドhereに注意してください。私はそのガイドに従っています。私はpasswdデータベースで動作するサービスを実装する必要があります。 問題は私のモジュールが特定の機能のために呼び出されていないことです。 enum nss_status _nss_myservice_setpwent (void)

    6

    3答えて

    Linux Mint 14 NadiaにMatlabをインストールしました(uname -aが表示されます:Linux Ideapad-Z570 3.5.0-17-ジェネリック#28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux )、コマンドラインから呼び出すときには、 "/lib64/libc.so n