新聞中心
近年來,隨著電子技術(shù)的飛速發(fā)展,越來越多的人開始注意到PCB板的重要性。PCB板是連接電子元件的重要載體,我們需要獲取有關(guān)PCB板的各項信息,以便更好地進行電路設(shè)計和生產(chǎn)。正如我們所知道的,獲取PCB信息可能會比較復雜,但是有一個好消息,我們可以利用Linux系統(tǒng)來簡化這一過程。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、鐵嶺網(wǎng)絡推廣、微信小程序定制開發(fā)、鐵嶺網(wǎng)絡營銷、鐵嶺企業(yè)策劃、鐵嶺品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學生創(chuàng)業(yè)者提供鐵嶺建站搭建服務,24小時服務熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
在本文中,我們將介紹如何使用Linux系統(tǒng)來輕松獲取PCB信息,包括PCB板的類型、參數(shù)和制造工藝,以及如何利用Linux來管理這些信息。
一、利用Linux系統(tǒng)獲取PCB板信息
1. PCB板類型的獲取
我們可以使用Linux系統(tǒng)來獲取PCB板類型的信息。對于普通用戶而言,可以通過簡單的命令行來查看系統(tǒng)發(fā)現(xiàn)的新設(shè)備。例如,在Ubuntu系統(tǒng)中,可以使用以下命令來查看連接的USB設(shè)備:
$ sudo lsu
這將返回所有連接到電腦上的USB設(shè)備,并且可以通過查看設(shè)備的ID數(shù)字來識別PCB板類型。當然,有時候PCB板無法通過USB口連接到計算機,這個時候我們可以使用其他方法來獲取類型信息,例如通過零件編號查詢或者與廠家進行溝通。
2. PCB板參數(shù)的獲取
在Linux系統(tǒng)中,我們可以使用一些工具和命令來獲取PCB板的各項參數(shù),例如板厚、線寬、線距、板材等等。其中一個常用的軟件是Gerber文件查看器,其可以加載PCB板生產(chǎn)廠家提供的Gerber文件集,用于預覽和檢查標準格式的電子電路板。
3. PCB板制造工藝的獲取
對于那些需要獲取PCB板的制造過程信息的用戶,可以通過一些特殊的軟件或者網(wǎng)站來完成這一操作。例如,有些電路板廠商提供了一些可供用戶下載的設(shè)計規(guī)范、PCB相關(guān)知識和PCB板生產(chǎn)過程中的紀律,以供參考。
二、用Linux系統(tǒng)管理PCB信息
一旦獲取到了PCB板的各項信息,我們就需要對這些信息進行管理和整理,同時還需要確保這些信息在未來能夠輕松地訪問和查詢。以下是幾種使用Linux系統(tǒng)來管理PCB信息的方法。
1. 使用電子表格來管理PCB信息
在Linux系統(tǒng)中,我們可以使用各種電子表格軟件來管理 PCB信息。例如,我們可以使用 Microsoft Excel、Apache OpenOffice Calc 或 LibreOffice Calc等等。將所有PCB板的信息保存在一個電子表格中,可以方便快捷地對數(shù)據(jù)進行排序、搜索和編輯。此外,還可以將電子表格導出為其他格式,例如.csv 或 .ods格式這樣的文本格式。
2. 使用PCB庫
我們可以在Linux系統(tǒng)中使用PCB庫來構(gòu)建、存儲和管理PCB信息。這可以使我們更容易地管理PCB板的類型、參數(shù)和制造工藝等信息。常用的PCB庫軟件有Oregano和Celestial等等。
我們需要注意的是,Linux并非完美無缺。它也會有一些問題和瓶頸。但是,由于Linux系統(tǒng)多年來一直被廣泛使用,所以我們可以借助于許多現(xiàn)有工具和資源來獲取和管理PCB信息,這將大大簡化日常工作的難度,使我們更加高效地完成工作。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務!
PCB的包含信息
在不同的操作系統(tǒng)中對進程的控制和管理機制不同,PCB中的信息多少也不一樣,通常PCB應包含如下一些信息。
1、進程標識符信息
每個進程都必須有一個唯一的標識符,可以是
字符串
,也可以是一個數(shù)字。UNIX系統(tǒng)中就是一個
整型
數(shù)。在進程創(chuàng)建時由系統(tǒng)賦予。進程標識符用于唯一的標識一個進程。一個進程通常有以下兩種標識符。
外部標識符。由創(chuàng)建者提供,通常是由字母、數(shù)字組成,往往是用戶(進程)訪問該進程使用。外部標識符便于記憶,如:計算進程、打印進程、發(fā)送進程、接收進程等。
內(nèi)部標識符:為了方便系統(tǒng)使用而設(shè)置的。在所有的OS中,都為每一個進程賦予一個唯一的整數(shù),作為內(nèi)部標識符。它通常就是一個進程的符號,為了描述進程的家族關(guān)系,還應該設(shè)置父進程標識符以及子進程標識符。還可以設(shè)置用戶標識符,來指示該進程由哪個用戶擁有。
2、處理機狀態(tài)信息
說明進程當前所處的狀態(tài)。為了管理的方便,系統(tǒng)設(shè)計時會將相同的狀態(tài)的進程組成一個隊列,如就緒進程隊列,等待進程則要根據(jù)等待的事件組成多個等待隊列,如等待打印機隊列、等待等。處理機狀態(tài)信息主要是由處理機各種
寄存器
中的內(nèi)容所組成。
通用寄存器。又稱為用戶可視寄存器,可被用戶程 序訪問,用于暫冊州存信息。
指令寄存器。存放要訪問的下一條指令的地址。
程序狀態(tài)字PSW。其中含有狀態(tài)信息。(條件碼、 執(zhí)行方式、中斷屏蔽標志等)
用戶棧指針。每個用戶進程有一個或若干個與之相 關(guān)的系統(tǒng)棧,用于存放過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址。棧指針指向該棧的棧頂。
3.進程調(diào)度信息
在PCB中還存放了一些與進程調(diào)度和進程對換有關(guān)的信息。
(1)進程狀態(tài)。指明進程當前的狀態(tài),作為進程調(diào)度和對換時的依據(jù)。
(2)進程優(yōu)先級。用于描述進程使用處理機的優(yōu)先級別的一個整數(shù),優(yōu)先級高的進程優(yōu)先獲得處理機。
(3)進程調(diào)度所需要的其他信息。(進程已等待CPU的時間總和、進程已州擾蔽執(zhí)行的時間總和)
(4)事件。這是進程由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)所等待發(fā)生的事件。(阻塞原因)
進程上下文:
是進程執(zhí)行活動全過程的靜態(tài)描述。包括
計算機系統(tǒng)
中與執(zhí)行該進程有關(guān)的各種寄存器的值、程序段在經(jīng)過編譯之后形成的機器指令代碼集、
數(shù)據(jù)集
及各種堆棧值和李滾PCB結(jié)構(gòu)??砂匆欢ǖ膱?zhí)行層次組合,如用戶級上下文、系統(tǒng)級上下文等。
進程存在的唯一標志:
在進程的整個
生命周期
中,系統(tǒng)總是通過PCB對進程進行控制的,亦即,系統(tǒng)是根據(jù)進程的PCB而不是任何別的什么而感知到該進程的存在的,所以說,PCB是進程存在的唯一標志 。
linux下的PID,PIDD是什么?他們之間的關(guān)系以及應用是什么?
不知道你是不是學習編程的,如果不是就沒必要看蘆型改了。
1.PID是進程標識號,它是一個進程的唯一性標識。PPID是該進程父進程的進程標識號。
2.fork和exec和pid完全就是2件事情不能混租罩為一談。fork是一個linux庫函數(shù)。他是用來創(chuàng)建一個新的進程。至于exec是一個系陪判列函數(shù),C標準庫函數(shù),用來改變進程上下文的。2者結(jié)合使用可以創(chuàng)建一個新的進程。
3.如果創(chuàng)建新的進程,一般是用fork,他會返回這個被創(chuàng)建進程的PID,你可以通過PID找到這個進程。
在 Linux 底下執(zhí)行一個指令時,系統(tǒng)會給予這個動作一個 ID, 我們稱為 PID,而根據(jù)啟用這個指令的使用者與相關(guān)的指令功能,而給予這個特定好洞 PID 一組權(quán)限, 該指令可以進行的行為則與這個 PID 的權(quán)限有關(guān)。
linux進程簡介
Linux是一個多任歲州務的操作系統(tǒng),也就是說,在同一個時間內(nèi),可以有多個進程同時執(zhí)行。如果讀者對計算機硬件體系有一定了解的話,會知道我們大家常用的單CPU計算機實際上在一個時間片斷內(nèi)只能執(zhí)行一條指令,那么Linux是如何實現(xiàn)多進程同時執(zhí)行的呢?原來Linux使用了一種稱為”進程調(diào)度(process scheng)”的手段,首先,為每個進程指派一定的運行時間,這個時間通常很短,短到以毫秒為單位,然后依照某種規(guī)則,從眾多進程中挑選一個投入運行,其他的進程暫時等待,當正在運行的那個進程時間耗盡,或執(zhí)行完畢退出,或因某種原因暫停,Linux就會重新進行調(diào)度,挑選下一個進程投入運行。因為每個進程占用的時間片都很短,在我們使用者的角度來看,就好像多個進程同時運行一樣了。
在Linux中,每個進程在創(chuàng)建時都會被分配一個數(shù)據(jù)結(jié)構(gòu),稱為進程控制塊(Process Control Block,簡稱PCB)。PCB中包含了很多重要的信息,供系統(tǒng)調(diào)度和進程本身執(zhí)行使用,其中最重要的莫過于進程ID(process ID)了,進程ID也被稱作進程標識符,是一個非負的整數(shù),在Linux操作系統(tǒng)中唯一地標志一個進程,在我們最常使用的I386架構(gòu)(即PC使用的架構(gòu))上,一個非負的整數(shù)的變化范圍是,這也是我們所有可能取到的進程ID。其實從進程ID的名字就可以看出,它就是進程的身份證號碼,友雀枯每個人的身份證號碼都不會相同,每個進程的進程ID也不會相同。
一個或多個進程可以合起來構(gòu)成一個進程組(process group),一個或多個進程組可以合起來構(gòu)成一個會話(session)。這樣我們就有了對進程進行批量操作的能力,比如通過向某個進程組發(fā)送信號來實現(xiàn)向該組中的每個進程發(fā)送信號。
最后,讓我們通過ps命令親眼看一看自己的系統(tǒng)中目前有多少進程在運行:
$ps -aux(以下是在我的計算機上的運行結(jié)果,你的結(jié)果很可能與這不同。)
USERPID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root.1 0.?S May15 0:04 init
root.0 0.?SW May15 0:00
root.0 0.?SW May15 0:00
root.0 0.?SWN May15 0:00
root.0 0.?SW May15 0:00
root.0 0.?SW May15 0:00
root.0 0.?SW May15 0:00
root.0 0.?SW May15 0:00
root.0 0.?SW /* 提供類型pid_t的定義 */
#include /* 提供函數(shù)的定義 */
pid_t getpid(void);
getpid的作用很簡單,就是返回當前進程的進程ID,請大家看以下的例子:
/* getpid_test.c */
#include
main()
{
printf(“The current process ID is %d
“,getpid());
}
細心的讀者可能注意到了,這個程序的定義里并沒有包含頭文件sys/types.h,這是因為我們在程序中沒有用到pid_t類型,pid_t類型即為進程ID的類型。事實上,在i386架構(gòu)上(就是我們一般PC計算機的架構(gòu)),pid_t類型是和int類型完全兼容的,我們可以用處理整形數(shù)的方法去處理pid_t類型的數(shù)據(jù),比如,用”%d”把它打印出來。
編譯并運行程序getpid_test.c:
$gcc getpid_test.c -o getpid_test
$./getpid_test
The current process ID is 1980
(你自己的運行結(jié)果很可能與這個數(shù)字不一樣,這是很正常的。)
再運行一遍:
$./getpid_test
The current process ID is 1981
正如我們所見,盡管是同一個應用程序,每一次運行的時候,所分配的進程標識符都不相同。
fork
在2.4.4版內(nèi)核中,fork是第2號系統(tǒng)調(diào)用,其在Linux函數(shù)庫中的原型是:
#include /* 提供類型pid_t的定義 */
#include /* 提供函數(shù)的定義 */
pid_t fork(void);
只看fork的名字,可能難得有幾個人可以猜到它是做什么用的。fork系統(tǒng)調(diào)用的作用是復制一個進程。當一個進程調(diào)用它,完成后就出現(xiàn)兩個幾乎一模一樣的進程,我們也由此得到了一個新進程。據(jù)說fork的名字就是來源于這個與叉子的形狀頗有幾分相似的工作流程。
在Linux中,創(chuàng)造新進程的方法只有一個,就是我們正在介紹的fork。其他一些庫函數(shù),如system(),看起來似乎它們也能創(chuàng)建新的進程,如果能看一下它們的源碼就會明白,它們實際上也在內(nèi)部調(diào)用了fork。包括我們在命令行下運行應用程序,新的進程也是由shell調(diào)用fork制造出來的。fork有一些很有意思的特征,下面就讓我們通過一個小程序來對它有更多的了解。
/* fork_test.c */
#include
#inlcude
main()
{
pid_t pid;
/*此時僅有一個進程*/
pid=fork();
/*此時已經(jīng)有兩個進程在同時運行*/
if(pid
void exit(int status);
不像fork那么難理解,從exit的名字就能看出,這個系統(tǒng)調(diào)用是用來終止一個進程的。無論在程序中的什么位置,只要執(zhí)行到exit系統(tǒng)調(diào)用,進程就會停止剩下的所有操作,清除包括PCB在內(nèi)的各種數(shù)據(jù)結(jié)構(gòu),并終止本進程的運行。請看下面的程序:
/* exit_test1.c */
#include
main()
{
printf(“this process will exit!
“);
exit(0);
printf(“never be displayed!
“);
}
編譯后運行:
$gcc exit_test1.c -o exit_test1
$./exit_test1
this process will exit!
我們可以看到,程序并沒有打印后面的”never be displayed! “,因為在此之前,在執(zhí)行到exit(0)時,進程就已經(jīng)終止了。
exit系統(tǒng)調(diào)用帶有一個整數(shù)類型的參數(shù)status,我們可以利用這個參數(shù)傳遞進程結(jié)束時的狀態(tài),比如說,該進程是正常結(jié)束的,還是出現(xiàn)某種意外而結(jié)束的,一般來說,0表示沒有意外的正常結(jié)束;其他的數(shù)值表示出現(xiàn)了錯誤,進程非正常結(jié)束。我們在實際編程時,可以用wait系統(tǒng)調(diào)用接收子進程的返回值,從而針對不同的情況進行不同的處理。關(guān)于wait的詳細情況,我們將在以后的篇幅中進行介紹。
exit和_exit
作為系統(tǒng)調(diào)用而言,_exit和exit是一對孿生兄弟,它們究竟相似到什么程度,我們可以從Linux的源碼中找到答案:
#define __NR__exit __NR_exit /* 摘自文件include/a-i386/unistd.h第334行 */
“__NR_”是在Linux的源碼中為每個系統(tǒng)調(diào)用加上的前綴,請注意之一個exit前有2條下劃線,第二個exit前只有1條下劃線。
這時隨便一個懂得C語言并且頭腦清醒的人都會說,_exit和exit沒有任何區(qū)別,但我們還要講一下這兩者之間的區(qū)別,這種區(qū)別主要體現(xiàn)在它們在函數(shù)庫中的定義。_exit在Linux函數(shù)庫中的原型是:
#include
void _exit(int status);
和exit比較一下,exit()函數(shù)定義在stdlib.h中,而_exit()定義在unistd.h中,從名字上看,stdlib.h似乎比unistd.h高級一點,那么,它們之間到底有什么區(qū)別呢?讓我們先來看流程圖,通過下圖,我們會對這兩個系統(tǒng)調(diào)用的執(zhí)行過程產(chǎn)生一個較為直觀的認識。
從圖中可以看出,_exit()函數(shù)的作用最為簡單:直接使進程停止運行,清除其使用的內(nèi)存空間,并銷毀其在內(nèi)核中的各種數(shù)據(jù)結(jié)構(gòu);exit()函數(shù)則在這些基礎(chǔ)上作了一些包裝,在執(zhí)行退出之前加了若干道工序,也是因為這個原因,有些人認為exit已經(jīng)不能算是純粹的系統(tǒng)調(diào)用。
exit()函數(shù)與_exit()函數(shù)更大的區(qū)別就在于exit()函數(shù)在調(diào)用exit系統(tǒng)調(diào)用之前要檢查文件的打開情況,把文件緩沖區(qū)中的內(nèi)容寫回文件,就是圖中的”清理I/O緩沖”一項。
在Linux的標準函數(shù)庫中,有一套稱作”高級I/O”的函數(shù),我們熟知的printf()、fopen()、fread()、fwrite()都在此列,它們也被稱作”緩沖I/O(buffered I/O)”,其特征是對應每一個打開的文件,在內(nèi)存中都有一片緩沖區(qū),每次讀文件時,會多讀出若干條記錄,這樣下次讀文件時就可以直接從內(nèi)存的緩沖區(qū)中讀取,每次寫文件的時候,也僅僅是寫入內(nèi)存中的緩沖區(qū),等滿足了一定的條件(達到一定數(shù)量,或遇到特定字符,如換行符和文件結(jié)束符EOF),再將緩沖區(qū)中的內(nèi)容一次性寫入文件,這樣就大大增加了文件讀寫的速度,但也為我們編程帶來了一點點麻煩。如果有一些數(shù)據(jù),我們認為已經(jīng)寫入了文件,實際上因為沒有滿足特定的條件,它們還只是保存在緩沖區(qū)內(nèi),這時我們用_exit()函數(shù)直接將進程關(guān)閉,緩沖區(qū)中的數(shù)據(jù)就會丟失,反之,如果想保證數(shù)據(jù)的完整性,就一定要使用exit()函數(shù)。
請看以下例程:
/* exit2.c */
#include
main()
{
printf(“output begin
“);
printf(“content in buffer”);
exit(0);
}
編譯并運行:
$gcc exit2.c -o exit2
$./exit2
output begin
content in buffer
/* _exit1.c */
#include
main()
{
printf(“output begin
“);
printf(“content in buffer”);
_exit(0);
}
編譯并運行:
$gcc _exit1.c -o _exit1
$./_exit1
output begin
在Linux中,標準輸入和標準輸出都是作為文件處理的,雖然是一類特殊的文件,但從程序員的角度來看,它們和硬盤上存儲數(shù)據(jù)的普通文件并沒有任何區(qū)別。與所有其他文件一樣,它們在打開后也有自己的緩沖區(qū)。
請讀者結(jié)合前面的敘述,思考一下為什么這兩個程序會得出不同的結(jié)果。相信如果您理解了我前面所講的內(nèi)容,會很容易的得出結(jié)論。
在這篇文章中,我們對Linux的進程管理作了初步的了解,并在此基礎(chǔ)上學習了getpid、fork、exit和_exit四個系統(tǒng)調(diào)用。在下一篇文章中,我們將學習與Linux進程管理相關(guān)的其他系統(tǒng)調(diào)用,并將作一些更深入的探討。
前面的文章中,我們已經(jīng)了解了父進程和子進程的概念,并已經(jīng)掌握了系統(tǒng)調(diào)用exit的用法,但可能很少有人意識到,在一個進程調(diào)用了exit之后,該進程并非馬上就消失掉,而是留下一個稱為僵尸進程(Zombie)的數(shù)據(jù)結(jié)構(gòu)。在Linux進程的5種狀態(tài)中,僵尸進程是非常特殊的一種,它已經(jīng)放棄了幾乎所有內(nèi)存空間,沒有任何可執(zhí)行代碼,也不能被調(diào)度,僅僅在進程列表中保留一個位置,記載該進程的退出狀態(tài)等信息供其他進程收集,除此之外,僵尸進程不再占有任何內(nèi)存空間。從這點來看,僵尸進程雖然有一個很酷的名字,但它的影響力遠遠抵不上那些真正的僵尸兄弟,真正的僵尸總能令人感到恐怖,而僵尸進程卻除了留下一些供人憑吊的信息,對系統(tǒng)毫無作用。
也許讀者們還對這個新概念比較好奇,那就讓我們來看一眼Linux里的僵尸進程究竟長什么樣子。
當一個進程已退出,但其父進程還沒有調(diào)用系統(tǒng)調(diào)用wait(稍后介紹)對其進行收集之前的這段時間里,它會一直保持僵尸狀態(tài),利用這個特點,我們來寫一個簡單的小程序:
/* zombie.c */
#include
#include
main()
{
pid_t pid;
pid=fork();
if(pid
printf(“error occurred!n”);
else if(pid==0) /* 如果是子進程 */
exit(0);
else /* 如果是父進程 */
sleep(60); /* 休眠60秒,這段時間里,父進程什么也干不了 */
wait(NULL); /* 收集僵尸進程 */
}
sleep的作用是讓進程休眠指定的秒數(shù),在這60秒內(nèi),子進程已經(jīng)退出,而父進程正忙著睡覺,不可能對它進行收集,這樣,我們就能保持子進程60秒的僵尸狀態(tài)。
編譯這個程序:
$ cc zombie.c -o zombie
后臺運行程序,以使我們能夠執(zhí)行下一條命令:
$ ./zombie &
1577
列一下系統(tǒng)內(nèi)的進程:
$ ps -ax
… …
1177 pts/0 S:00 -bash
1577 pts/0 S:00 ./zombie
1578 pts/0 Z:00
1579 pts/0 R:00 ps -ax
看到中間的”Z”了嗎?那就是僵尸進程的標志,它表示1578號進程現(xiàn)在就是一個僵尸進程。
我們已經(jīng)學習了系統(tǒng)調(diào)用exit,它的作用是使進程退出,但也僅僅限于將一個正常的進程變成一個僵尸進程,并不能將其完全銷毀。僵尸進程雖然對其他進程幾乎沒有什么影響,不占用CPU時間,消耗的內(nèi)存也幾乎可以忽略不計,但有它在那里呆著,還是讓人覺得心里很不舒服。而且Linux系統(tǒng)中進程數(shù)目是有限制的,在一些特殊的情況下,如果存在太多的僵尸進程,也會影響到新進程的產(chǎn)生。那么,我們該如何來消滅這些僵尸進程呢?
先來了解一下僵尸進程的來由,我們知道,Linux和UNIX總有著剪不斷理還亂的親緣關(guān)系,僵尸進程的概念也是從UNIX上繼承來的,而UNIX的先驅(qū)們設(shè)計這個東西并非是因為閑來無聊想煩煩其他的程序員。僵尸進程中保存著很多對程序員和系統(tǒng)管理員非常重要的信息,首先,這個進程是怎么死亡的?是正常退出呢,還是出現(xiàn)了錯誤,還是被其它進程強迫退出的?其次,這個進程占用的總系統(tǒng)CPU時間和總用戶CPU時間分別是多少?發(fā)生頁錯誤的數(shù)目和收到信號的數(shù)目。這些信息都被存儲在僵尸進程中,試想如果沒有僵尸進程,進程一退出,所有與之相關(guān)的信息都立刻歸于無形,而此時程序員或系統(tǒng)管理員需要用到,就只好干瞪眼了。
關(guān)于linux獲取pcb信息的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)-老牌IDC、云計算及IT信息化服務領(lǐng)域的服務供應商,業(yè)務涵蓋IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)服務、云計算服務、IT信息化、AI算力租賃平臺(智算云),軟件開發(fā),網(wǎng)站建設(shè),咨詢熱線:028-86922220
分享名稱:輕松獲取PCB信息,Linux來幫忙!(linux獲取pcb信息)
當前路徑:http://www.5511xx.com/article/dhpehhh.html


咨詢
建站咨詢
