導航:首頁 > 操作系統 > linuxlist使用

linuxlist使用

發布時間:2022-07-03 12:01:01

① 如何在linux c 實現list

C語言沒有類的概念。C++有現成的List類, #include<list>即可。
如果要自己實現可以參考C++數據結構的書籍,是最基本的練習。
這里實現一個簡單的常式,請參考:
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <string.h>
using namespace std;
#include<stdio.h>
#include<string>

#include "math.h"

template<class T> class List{
public:
List() //構造函數
{
pFirst = NULL;
}

void Add(T& t) //在Link表頭添加新結點
{
if(pFirst == NULL)
{
pFirst = new Node;
*(pFirst->pT) = t;
}
else
{
Node* pNewNode = new Node;
*(pNewNode->pT) = t;
pNewNode->pNext = pFirst;
pFirst = pNewNode;
}
}

void Remove(T& t) //在Link中刪除含有特定值的元素
{
Node* pNode = pFirst;
if(*(pNode->pT) == t)
{
pFirst = pFirst->pNext;
delete pNode;
return;
}
while(pNode != NULL)
{
Node* pNextNode = pNode->pNext;
if(pNextNode!=NULL)
{
if(*(pNextNode->pT) == t)
{
pNode->pNext = pNextNode->pNext;
delete pNextNode;
return;
}
}
else
return;//沒有相同的

pNode = pNode->pNext;
}
}
T* Find(T& t) //查找含有特定值的結點
{
Node* pNode = pFirst;
while(pNode != NULL)
{
if(*(pNode->pT) == t)
{
return pNode->pT;
}
pNode = pNode->pNext;
}
return NULL;
}
void PrintList() // 列印輸出整個鏈表
{
if(pFirst == NULL)
{
cout<<"列表為空列表!"<<endl;
return;
}
Node* pNode = pFirst;
while(pNode != NULL)
{
cout<<*(pNode->pT)<<endl;
pNode = pNode->pNext;
}
}
~List()
{
Node* pNode = pFirst;
while(pNode != NULL)
{
Node* pNextNode = pNode->pNext;
delete pNode;
pNode = pNextNode;
}
}
protected:
struct Node{
Node* pNext;
T* pT;

Node()
{
pNext = NULL;
pT = new T;
}
~Node()
{
delete pT;
}
};
Node *pFirst; //鏈首結點指針
};

class Student
{
public:
char id[20]; //學號
char name[20]; //姓名
int age; //年齡
Student()
{
}
~Student()
{
}
Student(const char* pid, const char* pname, int _age)
{
strcpy(id, pid);
strcpy(name, pname);
age = _age;
}
bool operator==(const Student& stu)
{
return strcmp(id, stu.id) == 0 && strcmp(id, stu.id) == 0 && age==stu.age;
}
Student& operator=(const Student& stu)
{
strcpy(id, stu.id);
strcpy(name, stu.name);
age = stu.age;
}
friend ostream& operator<< (ostream &out,const Student& stu);
};
ostream & operator<< (ostream &out,const Student& stu)
{
out<<"id:"<<stu.id<<"\tname:"<<stu.name<<"\tage:"<<stu.age<<endl;
}

int main()
{
List<Student> stuList;
cout<<"添加學生前:"<<endl;
stuList.PrintList();

Student stu1("1", "張三", 18);
Student stu2("2", "李四", 18);
Student stu3("3", "王五", 18);
Student stu4("4", "至尊寶", 18);
Student stu5("5", "豬八戒", 18);
Student stu6("6", "唐僧", 18);
Student stu7("7", "沙和尚", 18);
Student stu8("8", "觀音", 18);
stuList.Add(stu1);
stuList.Add(stu2);
stuList.Add(stu3);
stuList.Add(stu4);
stuList.Add(stu5);
stuList.Add(stu6);
stuList.Add(stu7);
stuList.Add(stu8);
cout<<"添加學生後:"<<endl;
stuList.PrintList();
Student stu11("1", "張三", 18);
Student* pStu = stuList.Find(stu11);
cout<<"查找到的同學是:"<<*pStu;

stuList.Remove(stu11);
cout<<"\n\n刪除第一個後:"<<endl;
stuList.PrintList();

return 0;
}

② linux怎樣引入list.h

不是標准代碼

可以自己寫一個

或者試試用內核代碼的list.h

看起來介面差不多

struct list_head {
struct list_head *next, *prev;};


#define LIST_HEAD_INIT(name) { &(name), &(name) }

#define LIST_HEAD(name)

struct list_head name = LIST_HEAD_INIT(name)

網頁鏈接

③ 如何學習linux命令之ls的使用

1 輸入 ls -a 或 ls -A
-a:顯示所有文件及目錄(ls內定將檔案名或目錄名稱為「.」的視為隱藏,不會列出);
-A:顯示除隱藏文件「.」和「..」以外的所有文件列表;
2 輸入 ls -C 或 ls -F
-C:多列顯示輸出結果。這是默認選項; -l:與「-C」選項功能相反,所有輸出信息用單列格式輸出,不輸出為多列;

-F:在每個輸出項後追加文件的類型標識符,具體含義:「*」表示具有可執行許可權的普通文件,「/」表示目錄,「@」表示符號鏈接,「|」表示命令管道FIFO,「=」表示sockets套接字。當文件為普通文件時,不輸出任何標識符;
3 輸入 ls -b 或 ls -d
-b:將文件中的不可輸出的字元以反斜線「」加字元編碼的方式輸出; -c:與「-lt」選項連用時,按照文件狀態時間排序輸出目錄內容,排序的依據是文件的索引節點中的ctime欄位。與「-l」選項連用時,則排序的一句是文件的狀態改變時間;
-d:僅顯示目錄名,而不顯示目錄下的內容列表。顯示符號鏈接文件本身,而不顯示其所指向的目錄列表;
4 輸入 ls -f 或 ls -i
-f:此參數的效果和同時指定「aU」參數相同,並關閉「lst」參數的效果;
-i:顯示文件索引節點號(inode)。一個索引節點代表一個文件; --file-type:與「-F」選項的功能相同,但是不顯示「*」;
5 輸入 ls -k 或 ls -l 或 ls -m
-k:以KB(千位元組)為單位顯示文件大小;
-l:以長格式顯示目錄下的內容列表。輸出的信息從左到右依次包括文件名,文件類型、許可權模式、硬連接數、所有者、組、文件大小和文件的最後修改時間等;
-m:用「,」號區隔每個文件和目錄的名稱;
6 輸入 ls -n 或 ls -r
-n:以用戶識別碼和群組識別碼替代其名稱;
-r:以文件名反序排列並輸出目錄內容列表;
7 輸入 ls -s 或 ls -t 或 ls -t --full-time:列出完整的日期與時間

-s:顯示文件和目錄的大小,以區塊為單位;
-t:用文件和目錄的更改時間排序;
8 輸入 ls -L 或 ls -R
-L:如果遇到性質為符號鏈接的文件或目錄,直接列出該鏈接所指向的原始文件或目錄;
-R:遞歸處理,將指定目錄下的所有文件及子目錄一並處理;

④ linux命令,chkconfig --list,這個為什麼要用兩個-,用一個-不行嗎

不行,因為list這個命令選線是一個多字元串的,所以必須使用--,如果是單字元串命令選項(例如ls -l ),那麼就需要一個了。
同時,如果一個命令字後面有多個單字元串選項,可以合並使用,例如ls -a -l ,就可以寫成ls -al

⑤ 請教在Red Hat Linux9.0下,gdb命令中list無法使用的問題

在別的搜索網站上查

⑥ Linux kernel中的list怎麼使用

為什麼一定要別人說的才是權威呢?
你可以再LKM編程中自己驗證一下,構造幾個包含struct list_head的結構體元素,初始化一個頭,然後依次調用list_add_tail入鏈表,然後在list_for_each_entry列印出來看,你就可以知道它到底是怎麼插的了!
多動手,你查遍所有資料還不如3分鍾的幾行代碼

⑦ linux命令 ls的使用

可以用ls
–al命令來觀察文件的許可權,每個文件的許可權都用10位表示,並分為四段,其中第一段佔1
位,表示文件類型,第二段佔3位,表示文件所有者對該文件的許可權。

⑧ linux cmakelist 怎麼用

由於調試需要因此研究了一下cmake這個誇平台的編譯工具的使用方法.

1.本人的機器為ubuntu 10.04,在連網的情況下直接在終端輸入:

[cpp] view plain 在CODE上查看代碼片派生到我的代碼片
root@zsh-linux:~#apt-get install cmake

安裝完畢之後可以在/var/cache/apt/archives看到安裝的.deb文件

或者在cmake官網下載cmake for linux

此時有個注意點是建議下載 cmake-2.8.4.tar.gz 而不是

cmake-2.8.4-Linux-i386.tar.gz

下載完成後解壓

[cpp] view plain 在CODE上查看代碼片派生到我的代碼片
root@zsh-linux:/opt#tar -zxvf cmake-2.8.4.tar.gz
然後 cd 到cmake-2.8.4目錄下
root@zsh-linux:/opt/cmake-2.8.4#
root@zsh-linux:/opt/cmake-2.8.4# ./bootstrap
root@zsh-linux:/opt/cmake-2.8.4# make
root@zsh-linux:/opt/cmake-2.8.4# make install
安裝完畢後查看是否安裝成功:
root@zsh-linux:/opt/cmake-2.8.4# cmake --version
cmake version 2.8.4
有以上信息表示安裝cmake成功。

2.cmake 的使用

(1)創建一個工程目錄文件夾,然後創建一個hello.c

[cpp] view plain 在CODE上查看代碼片派生到我的代碼片
#include<stdio.h>
int main()
{
printf(「hello,this is my first using cmake project/n」);
return 0;
}
(2)然後創建一個build目錄(用於編譯生成的相應文件),與hello.c目錄同級

(3)編寫CMakeLists.txt內容如下:(於hello.c目錄同級)

[cpp] view plain 在CODE上查看代碼片派生到我的代碼片
cmake_minimum_required(VERSION 2.8)
PROJECT(cmake_test)
SET(SRC_LIST main.c)
INCLUDE_DIRECTORIES(/usr/include/glib)
MESSAGE(STATUS "This is BINARY dir "${HELLO_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir "${HELLO_SOURCE_DIR})
ADD_EXECUTABLE(hello ${SRC_LIST})
(4)進入build目錄輸入 cmake ..

[cpp] view plain 在CODE上查看代碼片派生到我的代碼片
root@zsh-linux:/home/cmake_test/build# cmake ..
若編譯成功在build目錄下會生成相應文件,其中有個makefile文件

有可能會出現問題:

CMAKE_CXX_COMPILER-NOTFOUND" was not found

解決方法:

[cpp] view plain 在CODE上查看代碼片派生到我的代碼片
root@zsh-linux:/home/cmake_test/build# apt-get install g++
(可選)cmake -D CMAKE_CXX_COMPLIER=」g++」CMAKE -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=」/usr/local」
(5)輸入make 命令執行成功後在build目錄下會看到可執行的hello

(6)./hello

輸出 hello,this is my first usingcmake project。

註:這只適用於簡單的工程,若復雜的工程項目請參考www.cmake.org

⑨ linux 中的list.h

linux下要用一般C語言寫,用結構體來建立鏈表。c++和linux配不起來

⑩ linux 使用方法

樓主如果不專門學習一下Linux是不會懂的,英語也要過三級才能基本操作。 LINUX使用方法!!! linux目錄架構
/ 根目錄
/bin 常用的命令 binary file 的目錄
/boot 存放系統啟動時必須讀取的檔案,包括核心 (kernel) 在內
/boot/grub/menu.lst GRUB設置
/boot/vmlinuz 內核
/boot/initrd 核心解壓縮所需 RAM Disk
/dev 系統周邊設備
/etc 系統相關設定文件
/etc/DIR_COLORS 設定顏色
/etc/HOSTNAME 設定用戶的節點名
/etc/NETWORKING 只有YES標明網路存在
/etc/host.conf 文件說明用戶的系統如何查詢節點名
/etc/hosts 設定用戶自已的IP與名字的對應表
/etc/hosts.allow 設置允許使用inetd的機器使用
/etc/hosts.deny 設置不允許使用inetd的機器使用
/etc/hosts.equiv 設置遠端機不用密碼
/etc/inetd.conf 設定系統網路守護進程inetd的配置
/etc/gateways 設定路由器
/etc/protocols 設定系統支持的協議
/etc/named.boot 設定本機為名字伺服器的配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 設置IP
/etc/resolv.conf 設置DNS
/etc/X11 X Window的配置文件,xorg.conf 或 XF86Config 這兩個 X Server 的設定檔
/etc/fstab 記錄開機要mount的文件系統
/etc/inittab 設定系統啟動時init進程將把系統設置成什麼樣的runlevel
/etc/issue 記錄用戶登錄前顯示的信息
/etc/group 設定用戶的組名與相關信息
/etc/passwd 帳號信息
/etc/shadow 密碼信息
/etc/sudoers 可以sudo命令的配置文件
/etc/securetty 設定哪些終端可以讓root登錄
/etc/login.defs 所有用戶登錄時的預設配置
/etc/exports 設定NFS系統用的
/etc/init.d/ 所有服務的預設啟動 script 都是放在這里的,例如要啟動或者關閉
/etc/xinetd.d/ 這就是所謂的 super daemon 管理的各項服務的設定檔目錄
/etc/modprobe.conf 內核模塊額外參數設定
/etc/syslog.conf 日誌設置文件
/home 使用者家目錄
/lib 系統會使用到的函數庫
/lib/moles kernel 的相關模塊
/var/lib/rpm rpm套件安裝處
/lost+found 系統不正常產生錯誤時,會將一些遺失的片段放置於此目錄下
/mnt 外設的掛載點
/media 與/mnt類似
/opt 主機額外安裝的軟體
/proc 虛擬目錄,是內存的映射
/proc/version 內核版本
/proc/sys/kernel 系統內核功能
/root 系統管理員的家目錄
/sbin 系統管理員才能執行的指令
/srv 一些服務啟動之後,這些服務所需要取用的資料目錄
/tmp 一般使用者或者是正在執行的程序暫時放置檔案的地方
/usr 最大的目錄,存許應用程序和文件
/usr/X11R6: X-Window目錄
/usr/src: Linux源代碼
/usr/include:系統頭文件
/usr/openwin 存放SUN的OpenWin
/usr/man 在線使用手冊
/usr/bin 使用者可執行的 binary file 的目錄
/usr/local/bin 使用者可執行的 binary file 的目錄
/usr/lib 系統會使用到的函數庫
/usr/local/lib 系統會使用到的函數庫
/usr/sbin 系統管理員才能執行的指令
/usr/local/sbin 系統管理員才能執行的指令
/var 日誌文件
/var/log/secure 記錄登入系統存取資料的檔案,例如 pop3, ssh, telnet, ftp 等都會記錄在此檔案中
/var/log/wtmp 記錄登入者的訊息資料, last
/var/log/messages 幾乎系統發生的錯誤訊息
/var/log/boot.log 記錄開機或者是一些服務啟動的時候,所顯示的啟動或關閉訊息
/var/log/maillog 紀錄郵件存取或往來( sendmail 與 pop3 )的使用者記錄
/var/log/cron 記錄 crontab 這個例行性服務的內容
/var/log/httpd, /var/log/news, /var/log/mysqld.log, /var/log/samba, /var/log/procmail.log:
分別是幾個不同的網路服務的記錄檔

一些常用的基本命令:
uname -a 查看內核版本
ls -al 顯示所有文件的屬性
pwd 顯示當前路徑
cd - 返回上一次目錄 cd ~ 返回主目錄
date s 設置時間、日期
cal 顯示日歷 cal 2006
bc 計算器具
man & info 幫助手冊
locale 顯示當前字體 locale -a 所有可用字體 /etc/sysconfig/i18n設置文件
LANG=en 使用英文字體
sync 將數據同步寫入硬碟
shutdonw -h now & half & poweroff 關機
reboot 重啟
startx & init 5 進入圖形介面
/work & ?work 向上、下查找文檔內容
chgrp 改變檔案群組 chgrp testing install.log
chown 改變所屬人 chown root:root install.log
chmod 改變屬性 chmod 777 install.log read=4 write=2 execute=1
cp 復制 cp filename
rm 刪除文件 rm -rf filename 強制刪除文件
rmdir 刪除文件夾
mv 移動 mv 123.txt 222.txt 重命名
mkdir 創建文件夾
touch 創建文件 更新當前時間
cat 由第一行開始顯示 cat |more 分頁
nl 在內容前加行號
more & less 一面一面翻動
head -n filename 顯示第N行內容
tail -n filename 顯示後N行內容
od 顯示非純文檔
df -h 顯示分區空間
顯示目錄或文件的大小
fdisk 分區設置 fdisk -l /dev/hda 顯示硬碟分區狀態
mkfs 建立各種文件系統 mkfs -t ext3 /dev/ram15
fsck 檢查和修復LINUX檔案
ln 硬鏈接 ln -s 軟體鏈接
whereis 查找命令
locate 查找
find 查找 find / -name "***.***"
which 查看工具
whoami 顯示當前用戶
gcc -v 查看GCC版本
chattr +i filename 禁止刪除 chattr -i filename 取消禁止
lsattr 顯示隱藏檔屬性
updatedb 更新資料庫
mke2fs 格式化 mkfs -t ext3
dd if=/etc/passwd of=/tmp/passwd.bak 備份
mount 列出系統所有的分區
mount -t iso9660 /dev/cdrom /mnt/cdrom 掛載光碟
mount -t vfat /dev/fd0 /mnt/floppy 掛載軟盤
mount -t vfat -o iocharset=utf8,umask=000 /dev/hda2 /mnt/hda2 掛載fat32分區
mount -t ntfs -o nls=utf8,umask=000 /dev/hda3 /mnt/hda3 掛載ntfs分區
Linux-NTFS Project: http://linux-ntfs.sourceforge.net/
umount /mnt/hda3 缷載
ifconfig 顯示或設置網路設備
service network restart 重啟網卡
ifdown eth0 關閉網卡
ifup eth0 開啟網卡
clear 清屏
history 歷史記錄 !55 執行第55個指令
stty 設置終端 stty -a
fdisk /mbr 刪除GRUB
at 僅進行一次的工作排程
crontab 循環執行的例行性命令 [e]編輯,[l]顯示,[r]刪除任務
& 後台運行程序 tar -zxvf 123.tar.gz & --------->後台運行
jobs 觀看後台暫停的程序 jobs -l
fg 將後台程序調到前台 fg n ------>n是數字,可以指定進行那個程序
bg 讓工作在後台運行
kill 結束進程 kill -9 PID [9]強制結束,[15]正常結束,[l]列出可用的kill信號
ps aux 查看後台程序
top 查看後台程序 top -d 2 每兩秒更新一次 top -d 2 -p10604 觀看某個PID
top -b -n 2 > /tmp/top.txt ----->將 top 的資訊進行 2 次,然後將結果輸出到 /tmp/top.txt
pstree 以樹狀圖顯示程序 [A]以 ASCII 來連接, 列出PID, [p]列出帳號
killall 要刪除某個服務 killall -9 httpd
free 顯示內存狀態 free -m -------->以M為單位顯示
uptime 顯示目前系統開機時間
netstat 顯示網路狀態 netstat -tulnp------>找出目前系統上已在監聽的網路連線及其 PID
dmesg 顯示開機信息 demsg | more
nice 設置優先權 nice -n -5 vi & ----->用 root 給一個 nice 植為 -5 ,用於執行 vi
renice 調整已存在優先權
runlevel 顯示目前的runlevel
depmod 分析可載入模塊的相依性
lsmod 顯示已載入系統的模塊
modinfo 顯示kernel模塊的信息
insmod 載入模塊
modprobe 自動處理可載入模塊
rmmod 刪除模塊
chkconfig 檢查,設置系統的各種服務 chkconfig --list ----->列出各項服務狀態
ntsysv 設置系統的各種服務
cpio 備份文件

壓縮命令:
*.Z compress 程式壓縮的檔案;
*.bz2 bzip2 程式壓縮的檔案;
*.gz gzip 程式壓縮的檔案;
*.tar tar 程式打包的資料,並沒有壓縮過;
*.tar.gz tar 程式打包的檔案,其中並且經過 gzip 的壓縮
compress filename 壓縮文件 加[-d]解壓 uncompress
gzip filename 壓縮 加[-d]解壓 zcat 123.gz 查看壓縮文件內容
bzip2 -z filename 壓縮 加[-d]解壓 bzcat filename.bz2 查看壓縮文件內容
tar -cvf /home/123.tar /etc 打包,不壓縮
tar -xvf 123.tar 解開包
tar -zxvf /home/123.tar.gz 以gzip解壓
tar -jxvf /home/123.tar.bz2 以bzip2解壓
tar -ztvf /tmp/etc.tar.gz 查看tar內容
cpio -covB > [file|device] 份份
cpio -icv < [file|device] 還原</U>

閱讀全文

與linuxlist使用相關的資料

熱點內容
堵車如何緩解壓力 瀏覽:15
喜鵲快貸app怎麼了 瀏覽:263
海龜編輯器積木編程怎麼安裝 瀏覽:185
程序員理發店生意怎麼樣 瀏覽:603
程序員羅技 瀏覽:180
軟考初級程序員課程2021下載 瀏覽:491
杭州程序員奶奶 瀏覽:880
不聽命令造成錯誤 瀏覽:981
kool系統源碼 瀏覽:610
流氓app在哪裡看 瀏覽:98
域名購買了怎麼指向伺服器 瀏覽:121
安卓手機如何讓照片顏色反轉 瀏覽:859
怎麼下載卓睿安手機版 瀏覽:514
h3crange命令 瀏覽:468
php前景和python 瀏覽:338
php壓縮圖片內存大小 瀏覽:495
在哪裡可以查看雲伺服器的信息 瀏覽:70
python讀取非txt文件 瀏覽:799
艾莫迅用什麼編程軟體好 瀏覽:227
android文件存儲讀取 瀏覽:214