組み込みターゲットであるMicrochipPIC24のCコードを記述していますが、何らかの理由でランタイムlibcがシリアルポートを介して\0値を適切に送信しません。
printf("\xEE\xEE\0test");
たとえば、EE EE "test"を送信すると、ヌルバイトは無視されます。
なぜこれが起こるのか、誰か手がかりがありますか?
編集:えーと、XDを気にしないでください。私は文字列を送信するためにプットを使用していました..doh'
ヌル文字はCの文字列ターミネータです。 これは、文字列の終わりでprintf
あるため、そこで停止\0
します。を使用するputchar()
かprintf()
、フォーマット文字列を使用すると機能する場合があります。
printf("%c", '\0');
あなたが0xEE 0xEE test
提案するようにあなたが電話に出ているなら、あなたは別の電話test
から来ていないのは確かですか?printf
ヌル文字は、printfに関する限り、文字列の終わりを示します。それが「テスト」を送信することにまったく驚いています。特にシリアルポートを介してwriteシステムコールを使用する方がおそらく良いでしょう。