0

VxWorks PPCでコードを実行していますが、特にソケットの送信/受信機能でシステムコールが失敗した場合、errnoは常に0を返します。

いくつかの分析の結果、すべてのシステムコールが失敗した場合、errnoは0を返すことがわかりました。

errnoが正しい値を返すために実行する必要のある初期化はありますか?

4

2 に答える 2

1

シェル (カーネルまたはホスト) から「i」コマンドを入力すると、タスクのリストが表示されます。フィールドの 1 つは errno 値です。エラーのあるタスクを見つけて、errno 値を設定する必要があります。

errno を確認するときは、エラーの原因となった同じタスクにいる必要があります。

if(ERROR = someSystemFunction())
  printf("errno=%x", errno);

シェルにいて、errnoを出力することを期待することはできません

-> errno     (<---- will NEVER work)
errno:0x123455 value: 0 = 0x0
于 2010-05-04T13:01:08.213 に答える
0

errnoGet()は、実行されたタスクのerrnoを返します。別のタスクのerrnoを取得するには、errnoLibのドキュメントを参照してください。

于 2010-06-18T13:23:54.933 に答える