私はBeaglebone BlackでUART経由で画像を書き込もうとしています。しかし、私がライブラリでwrite()
関数を使うと、かかわらずagurment nbyte
のLinuxのC/C++でwrite()関数を使ってUART経由で70kBを書き込むBeaglebone Black
int write(int handle, void *buffer, int nbyte);
はint
タイプを持って、私は一度に70KBを転送することはできません。転送されたバイト数を表示し、結果はバイト数= 4111です。
length = write(fd,body.c_str(),strlen(body.c_str())); //
cout<<length<<endl; // result length = 4111;
cout<<strlen(body.c_str())<<endl; // result strlen(body.c_str()) = 72255;
私はあなたからお聞きしたいと思います!
すべてが送信されるまで残ったデータを書き込もうとしましたか? – nwp
'body'が' std :: string'オブジェクトの場合、 'strlen'呼び出しの代わりに' body.length() '(または' body.size() ')を使わないのはなぜですか? –
あなたの問題については、ループで書くことを考えましたか? –