2016-03-31 16 views
0

VxWorksのデバイス/ソケットをプログラムで閉じる方法はありますか? 意味デバイスが/tyco/0,/tyco/1/tyco/2であり、シャットダウンする/閉じる/tyco/1/tyco/2とします。VxWorksのデバイス/ソケットを閉じる

私はremove("/tyco/1")のようなことをしたいと思います。後でコード内でコールをしても、外部ソースからソケットを開くことができなくなることがあります。

答えて

0

VxWorksで使用できるすべてのデバイスは、デバイスリストの一部です。デバイスリストには、iosLibを使用してアクセスできます。これはあなたのケースでも動作しますdevsコマンドでリストされているすべてのデバイスのために働く

DEV_HDR *pDevice; 

pDevice = iosDevFind("/xyz", NULL); 
if (pDevice != NULL) 
{ 
    iosDevDelete(pDevice); 
} 

私は自分のプログラムをテストするために、エラーを生成するデバイスを削除するには、次のコードをたくさん使ってきました"/tyco"の場合私はあなたが"/tyco/1""/tyco/2"への公衆電話を禁止することはできますが、その方法を使って"/tyco/0"への呼び出しを許可することはできないと思っています。

"/tyco/0"がVxWorksシェルへのシリアルインターフェイスの場合は、上記の方法が有効です。デバイスリストからデバイスを削除すると、次のすべてのデバイスに障害が発生しますが、既に開いているデバイスは閉じられません。

+0

ありがとうございますルカは私が探しているものを正確に見せます。私はこれをループに入れて複数のデバイスを閉じたいのであれば、「pDevices」で何をするでしょうか?各ループでnullに設定し、いくつかの方法を解放します。...? – atomic928

+0

@ atomic928: 'pDevice'は、単にカーネルデバイスリスト内のエントリのポインタです。あなたはそれを解放するか、それを 'NULL'に設定する必要はありません。また、メモリ 'pDevice'のポイントを変更するべきではありません... –

関連する問題