2017-03-06 52 views
0

tl; drVxWorks對換行符有什麼用處?

VxWorks在終端(控制檯)應用程序中用於換行符的用途是什麼?

背景

我試圖找出什麼新行序列是由VxWorks的預期(如性病:: ENDL或類似機制)。當然,Windows使用「\ r \ n」,Linux使用「\ n」,在Wikipedia上列出的操作系統實施清單...除了VxWorks!也不是isthedocumentation非常明確的主題。

回答

1

換行符是「\ 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 *]# 
+0

感謝您的回答。我沒有VxWorks平臺進行測試,但是能否請您使用「hexdump」實用程序進行確認。例如,在Linux下,它將是./start | hexdump -c,我們將能夠看到哪些字符到控制檯。某些操作系統(例如Windows)在寫入控制檯時會默默地將「\ n」轉換爲「\ r \ n」。 – Damien

+0

我不確定在VxWorks中使用hexdump或相關的實用程序,但是如果有幫助,我會附加到答案,內核模塊 – endTunnel

+0

的文本段。不幸的是,該模塊的文本沒有幫助。程序輸出的字符流是。 – Damien

相關問題