vxworks系統下列表的使用

2021-05-06 07:20:06 字數 946 閱讀 3910

vxworks系統對常用資料結構的實現比較少,但是提供了對雙向鍊錶的支援,其宣告位於lstlib.h標頭檔案中,主要定義了以下一些內容:

1、list型別

list型別的定義如下:

list結構體屬於是對整個鍊錶的描述,它包括了鍊錶的頭指標、尾指標以及鍊錶中節點的個數。其中,node的next指標是list的頭指標(head),node的previous指標是list的尾指標(tail),這在lstlib的實現中是通過巨集來定義的,其定義如上邊**區下部:

定義list型別是使用鍊錶的第一步,一般情況下都要以

list mylist;

的形式定義乙個鍊錶。

2、node型別

其定義如下:

node型別只是提供了對節點最基本的描述,一般情況下在自己的**中是不能直接使用的,而是需要定義乙個自己的節點資料型別,定義自己節點型別的時候,切記結構體的第乙個位置必須是node型別的。這樣,在程式中,建立節點的時候就建立乙個mynode型別的,而使用系統鍊錶函式的時候,就把它強制轉換成node型別,使用示例見上邊**最下部。

3、相關函式。

函式的作用在此就不羅嗦了,後邊有每個函式的實現,需要注意的是lstnth函式和lstextract函式,lstnth函式中的序號應該是從1開始的,而不是0. lstextract函式分出來的子列表時即包括startnode,又包括endnode的。另外需要注意的就是開始使用鍊錶前先使用lstinit函式初始化,使用過程中刪除的節點記得釋放其空間(如果是malloc分配的話),使用完鍊錶之後使用lstfree釋放鍊錶空間。

所以,使用鍊錶的一般步驟是:

首先定義自己的節點型別,定義乙個list資料。

使用lstinit對鍊錶進行初始化

使用系統提供的函式對鍊錶進行操作,使用的過程中,用到自定義節點型別時記得型別轉換,刪除節點時記得釋放空間。

使用完鍊錶,釋放鍊錶空間。

lstlib.c檔案原始碼

在VxWorks系統中使用TrueType字型檔

與傳統的使用點陣字型檔相比,truetype字型檔至少會帶來這樣的好處 可以高質量地實現字元的無級放大或縮小,高質量地實現字元的旋轉 傾斜等操作 如圖1 方便地實現 所見即所得 圖1應用效果圖 由於有以上優點,在很多對字形有特殊操作要求的地方最好使用truetype字型檔 windows中現在使用的...

python 提取檔案下列表下的檔案

python 如下 import os import os.path import re import sys import codecs 資料夾所在的路徑 開啟資料夾 files os.listdir path print 資料夾列表 for file in files print 資料夾 fil...

vxworks下select 的使用

select 作用是掛起一系列的檔案描述符,其api為 int select int width,number of bits to examine from 0 fd set preadfds,read fds fd set pwritefds,write fds fd set pexceptfd...