2

組み込みターゲットであるMicrochipPIC24のCコードを記述していますが、何らかの理由でランタイムlibcがシリアルポートを介して\0値を適切に送信しません。

printf("\xEE\xEE\0test");

たとえば、EE EE "test"を送信すると、ヌルバイトは無視されます。

なぜこれが起こるのか、誰か手がかりがありますか?

編集:えーと、XDを気にしないでください。私は文字列を送信するためにプットを使用していました..doh'

4

2 に答える 2

5

ヌル文字はCの文字列ターミネータです。 これは、文字列の終わりでprintfあるため、そこで停止\0します。を使用するputchar()printf()、フォーマット文字列を使用すると機能する場合があります。

printf("%c", '\0');

あなたが0xEE 0xEE test提案するようにあなたが電話に出ているなら、あなたは別の電話testから来ていないのは確かですか?printf

于 2011-08-05T17:25:18.213 に答える
0

ヌル文字は、printfに関する限り、文字列の終わりを示します。それが「テスト」を送信することにまったく驚いています。特にシリアルポートを介してwriteシステムコールを使用する方がおそらく良いでしょう。

于 2011-08-05T17:28:17.793 に答える