open システム コールを使用して tty ポートを開こうとしています。open システムコールが -1 を返した場合、このポートが別のアプリケーションによって使用されているかどうかはどうすればわかりますか?
同じエラーコードを見つけないでください。
open システム コールを使用して tty ポートを開こうとしています。open システムコールが -1 を返した場合、このポートが別のアプリケーションによって使用されているかどうかはどうすればわかりますか?
同じエラーコードを見つけないでください。
ファイルが既に開いている場合、 を呼び出してopen()
もエラーは発生しません。
ただし、linuxlsof
コマンドの出力を分析してみることができます。
lsof /dev/ttyS0
指定されたファイル (この場合は /dev/ttyS0) を開いたプロセスに関する情報を返します。
(私はこれを数回テストしたので、よくわかりませんが、ファイルがプロセスによって開かれている場合は0lsof
を返し、プロセスが開いていない場合は1を返すようです。これは兆候かもしれませんが、コマンド自体の出力を実際に分析することをお勧めします)
#include <errno.h>
#include <stdio.h>
#include <strcing.h>
int main()
{
if(open("/dev/ttyS0", O_RDWR))
printf("errno = %s\n", strerror(errno));
return errno;
}
エラーコードが何であるかを把握するには、このリンクを参照してください。