ボード紹介:
基本的にDVBストリームをキャプチャしてテレビに表示するために使用されるST40チップを搭載したボードで作業しています。ボードは Linux OS で動作しています。
問題の説明:
O_DIRECT フラグを使用して、USB 上の大きなファイル (約 2 GB) からデータを読み取ろうとしています。関連するコード スニペットは次のとおりです。
char subblk[BLKSIZE];
open (filename2,O_CREAT|O_WRONLY|O_DIRECT,S_IRWXU|S_IRWXG|S_IRWXO);
read (fp,subblk,BLKSIZE);
エラー番号22で読み取りに失敗したと表示されます-"EINVAL 22 /* Invalid argument"
これがプログラミングの問題なのか、アーキテクチャに依存する問題なのかを明確にするために、デスクトップ システムで同じコードを実行したところ、まったく問題なく動作し、読み取った文字を印刷することができました。ST40 ボードで失敗する理由は何ですか?