私はUnix 6thの実装に対する回答を探しています。 http://warsus.github.io/lions-/エラーコードはどのようにユーザープログラムに返されますか?
2774: if(u.u_error < 100) {
2775: if(u.u_error) {
2776: ps =| EBIT;
2777: r0 = u.u_error;
2778: }
2779: goto out;
2780: }
システムコールのエラーコードがu_errorようなユーザSTRUCに格納され/戻されます。次に、それはレジスタr0に転送されます(上記のコードスニペットではr0ではなく、近い)。これらはすべてカーネルモードで発生します。私の質問は、r0のこのエラーコードがユーザーモードの呼び出し元に返される方法です。特に、r0はユーザーモードのコードで直接アクセスできますか?私は詳細を探していません。
このコードとユーザープログラムの間には、いくつかのレイヤーが関係しています。 Linuxで同様のことを見ると、よく書かれています。特に、http://musl-libc.org/ –
のようないくつかの 'libc'のソースコードを調べてください。今後、基本的なプログラミング知識以上のものが必要なこのような質問をするときは、プログラミング言語タグを与えてはなりません例えばC)。もしあなたがそうしたならば、ただあなたのSOポイントを稼ぐことを試みているばか人の前にあなたの質問をして、あなたが理解できない質問をホールドします。 – user3344003