VxWorks PPCでコードを実行していますが、特にソケットの送信/受信機能でシステムコールが失敗した場合、errnoは常に0を返します。
いくつかの分析の結果、すべてのシステムコールが失敗した場合、errnoは0を返すことがわかりました。
errnoが正しい値を返すために実行する必要のある初期化はありますか?
シェル (カーネルまたはホスト) から「i」コマンドを入力すると、タスクのリストが表示されます。フィールドの 1 つは errno 値です。エラーのあるタスクを見つけて、errno 値を設定する必要があります。
errno を確認するときは、エラーの原因となった同じタスクにいる必要があります。
if(ERROR = someSystemFunction())
printf("errno=%x", errno);
シェルにいて、errnoを出力することを期待することはできません
-> errno (<---- will NEVER work)
errno:0x123455 value: 0 = 0x0
errnoGet()は、実行されたタスクのerrnoを返します。別のタスクのerrnoを取得するには、errnoLibのドキュメントを参照してください。