Linuxを実行する組み込みシステムを使用しています。コンパイル済みの C プログラムをフォアグラウンドで実行すると、正しく動作します。ただし、プログラム呼び出しの後に「&」を追加して、バックグラウンドでジョブとして実行すると、特定の機能が正しく動作しません。動作を停止する主な機能は、ソケットからの読み取りに使用される「読み取り」関数 (unistd.h) の使用です。
バックラウンドでプロセスを実行すると、そのアクセス許可が減少しますか? 他に何がこの動作を引き起こす可能性がありますか?
編集: この関数は、'select' および 'read' 関数を使用して、CANbus メッセージ フレームの受信に使用されるソケットから読み取ります。データが受信されると、それを分析し、文字列を .txt ファイルに「エコー」して、データロガーとして機能させます。フォアグラウンドで実行すると、ファイルが作成されて正常に追加されますが、バックグラウンドで実行すると、ファイルは作成/追加されません。