0
tl; drVxWorks對換行符有什麼用處?
VxWorks在終端(控制檯)應用程序中用於換行符的用途是什麼?
背景
我試圖找出什麼新行序列是由VxWorks的預期(如性病:: ENDL或類似機制)。當然,Windows使用「\ r \ n」,Linux使用「\ n」,在Wikipedia上列出的操作系統實施清單...除了VxWorks!也不是isthedocumentation非常明確的主題。
tl; drVxWorks對換行符有什麼用處?
VxWorks在終端(控制檯)應用程序中用於換行符的用途是什麼?
背景
我試圖找出什麼新行序列是由VxWorks的預期(如性病:: ENDL或類似機制)。當然,Windows使用「\ r \ n」,Linux使用「\ n」,在Wikipedia上列出的操作系統實施清單...除了VxWorks!也不是isthedocumentation非常明確的主題。
換行符是「\ n」,因爲它在大多數操作系統中,您可以運行以下代碼來檢查自己。
#include "vxWorks.h"
#include "stdio.h"
void start(void) {
printf("First Line:\n");
printf("Second Line:\n");
printf("Fourth Line:");
printf("Fifth Line:\n");
printf("Sixth Line:\n");
}
如果加載並運行上述模塊(如果在內核模式下運行),你會得到了把爲: -
-> ld < so.out
->value = 944654968 = 0x384e4a78 = 'x'
-> start
First Line:
Second Line:
Fourth Line:Fifth Line:
Sixth Line:
value = 10 = 0xa
->
編輯:DKM的文本段
[vxWorks *]# module
MODULE NAME MODULE ID GROUP # TEXT START DATA START BSS START
--------------- ---------- ---------- ---------- ---------- ----------
so.out 0x384f7aa8 2 0x10640000 NO SEGMENT 0x10650000
[vxWorks *]# d 0x10640000
NOTE: memory values are displayed in hexadecimal.
0x10640000: 8955 83e5 18ec 04c7 4424 6400 e810 48ee *U.......$D.d...H*
0x10640010: ffb4 04c7 5024 6400 e810 48e2 ffb4 04c7 *....$P.d...H....*
0x10640020: 5d24 6400 e810 d196 ffb7 04c7 6a24 6400 *$].d........$j.d*
0x10640030: e810 48ca ffb4 04c7 7624 6400 e810 48be *...H....$v.d...H*
0x10640040: ffb4 c3c9 6946 7372 2074 694c 656e 003a *....First Line:.*
0x10640050: 6553 6f63 646e 4c20 6e69 3a65 4600 756f *Second Line:.Fou*
0x10640060: 7472 2068 694c 656e 003a 6946 7466 2068 *rth Line:.Fifth *
0x10640070: 694c 656e 003a 6953 7478 2068 4c20 6e69 *Line:.Sixth Lin*
0x10640080: 3a65 0000 0014 0000 0000 0000 7a01 0052 *e:...........zR.*
0x10640090: 7c01 0108 0c1b 0404 0188 0000 001c 0000 *.|..............*
0x106400a0: 001c 0000 ff5c ffff 0044 0000 4100 080e *....\...D....A..*
0x106400b0: 0285 0d42 0205 c540 040c 0004 0000 0000 *[email protected]*
0x106400c0: 6174 2067 4d53 2050 0030 6e65 0064 0000 *tag SMP 0.end...*
0x106400d0: 0000 0000 0000 0000 0000 0000 0000 0000 *................*
0x106400e0: 0000 0000 0000 0000 0000 0000 0000 0000 *................*
0x106400f0: 0000 0000 0000 0000 0000 0000 0000 0000 *................*
[vxWorks *]#
感謝您的回答。我沒有VxWorks平臺進行測試,但是能否請您使用「hexdump」實用程序進行確認。例如,在Linux下,它將是./start | hexdump -c,我們將能夠看到哪些字符到控制檯。某些操作系統(例如Windows)在寫入控制檯時會默默地將「\ n」轉換爲「\ r \ n」。 – Damien
我不確定在VxWorks中使用hexdump或相關的實用程序,但是如果有幫助,我會附加到答案,內核模塊 – endTunnel
的文本段。不幸的是,該模塊的文本沒有幫助。程序輸出的字符流是。 – Damien