日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
探究LinuxC編程如何獲取輸入數(shù)據(jù)(linuxc獲取輸入)

作為開發(fā)者,我們經(jīng)常需要從用戶或其他系統(tǒng)組件中獲取數(shù)據(jù)。在Linux C編程中,獲取輸入是一個(gè)重要的主題。在本文中,我們將介紹如何在Linux C編程中獲取輸入數(shù)據(jù),包括從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù)、從文件讀取數(shù)據(jù)和通過命令行參數(shù)傳遞輸入數(shù)據(jù)。

網(wǎng)站的建設(shè)成都創(chuàng)新互聯(lián)公司專注網(wǎng)站定制,經(jīng)驗(yàn)豐富,不做模板,主營網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設(shè)計(jì)體驗(yàn)!已為紗窗等企業(yè)提供專業(yè)服務(wù)。

從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù)

在Linux C編程中,我們可以使用標(biāo)準(zhǔn)輸入設(shè)備來獲取用戶的輸入數(shù)據(jù)。標(biāo)準(zhǔn)輸入設(shè)備是UNIX或類UNIX系統(tǒng)中每個(gè)進(jìn)程都會(huì)打開的文件描述符。在這個(gè)文件描述符中,我們可以使用C語言標(biāo)準(zhǔn)庫函數(shù)從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù)。

下面是一個(gè)示例程序,可以從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù):

“`c

#include

int mn(void) {

int c;

while ((c = getchar()) != EOF) {

putchar(c);

}

return 0;

}

“`

在這個(gè)程序中,我們使用getchar()函數(shù)逐個(gè)字符地讀取用戶的輸入數(shù)據(jù)。如果讀取到了文件的結(jié)尾符,那么getchar()函數(shù)會(huì)返回EOF。我們使用一個(gè)while循環(huán),不斷地讀取用戶的輸入數(shù)據(jù),直到到達(dá)了文件的結(jié)尾。

從文件讀取數(shù)據(jù)

除了從標(biāo)準(zhǔn)輸入設(shè)備中讀取數(shù)據(jù),我們還可以從文件中讀取數(shù)據(jù)。在Linux C編程中,我們使用C語言標(biāo)準(zhǔn)庫函數(shù)來讀取和寫入文件。

下面是一個(gè)示例程序,可以從文件中讀取數(shù)據(jù)并將其輸出到終端上:

“`c

#include

#define MAX_LINE_LENGTH 1024

int mn(int argc, char **argv) {

char buffer[MAX_LINE_LENGTH];

FILE *fp;

if (argc

printf(“Usage: %s \n”, argv[0]);

return 1;

}

fp = fopen(argv[1], “r”);

if (fp == NULL) {

printf(“Error: cannot open file %s\n”, argv[1]);

return 1;

}

while (fgets(buffer, MAX_LINE_LENGTH, fp) != NULL) {

printf(“%s”, buffer);

}

fclose(fp);

return 0;

}

“`

在這個(gè)程序中,我們使用fgets()函數(shù)逐行讀取指定文件的內(nèi)容。fgets()函數(shù)讀取到每一行的結(jié)尾符時(shí)就停止了,并將讀取到的行存儲(chǔ)在緩沖區(qū)中。我們使用一個(gè)while循環(huán),不斷地讀取文件中的每一行,并將其輸出到終端上。

通過命令行參數(shù)傳遞輸入數(shù)據(jù)

除了從標(biāo)準(zhǔn)輸入設(shè)備中讀取數(shù)據(jù)和從文件中讀取數(shù)據(jù),我們還可以通過命令行參數(shù)傳遞輸入數(shù)據(jù)。在Linux C編程中,我們可以使用argc和argv參數(shù)來獲取命令行參數(shù)。argc是指命令行中參數(shù)的個(gè)數(shù),包括程序本身的名稱。而argv是指一個(gè)指針數(shù)組,其中的每一個(gè)元素都指向一個(gè)命令行參數(shù)的字符串。

下面是一個(gè)示例程序,可以從命令行中獲取輸入數(shù)據(jù)并將其輸出到終端上:

“`c

#include

int mn(int argc, char **argv) {

int i;

if (argc

printf(“Usage: %s [input data]\n”, argv[0]);

return 1;

}

for (i = 1; i

printf(“%s “, argv[i]);

}

printf(“\n”);

return 0;

}

“`

在這個(gè)程序中,我們使用一個(gè)for循環(huán)將所有傳入的參數(shù)逐一輸出到終端上。由于argv數(shù)組的之一個(gè)元素是程序本身的名稱,因此我們從i=1的位置開始循環(huán)。

結(jié)論

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!

Linux C 配置串口

配置串口需要包含

頭文件

其中最核心的配置

結(jié)構(gòu)體

為:

如何獲取該結(jié)構(gòu)呢?我們操作串口跟操作文件一樣,也是調(diào)用 open() 函數(shù)來打開串口,

這樣我們就能夠得到一個(gè)

文件描述符

fd ,然后就可以調(diào)用 tcgetattr() 函數(shù)來獲取上述配置結(jié)構(gòu)體了。

Linux 串口默認(rèn)的配置為:

波特率

9600,數(shù)據(jù)位 8 位,無

奇偶校驗(yàn)

,停止位 1 位,無 CTS/RTS 。

以下介紹一些常用的配置項(xiàng):波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位、硬件控制流。

相關(guān)接口:

Linux 將串口的波特率辯笑分為了輸入波特率和輸出波特率,不過最常用的場景是將兩者設(shè)置成一樣。

cfgetispeed() 函數(shù)獲取輸入波特率, cfgetospeed() 函數(shù)獲取輸出波特率。 cfsetispeed() 函數(shù)設(shè)置輸入波特率, cfsetospeed() 函數(shù)用于設(shè)置輸如掘出波特率,當(dāng)然 cfsetspeed() 函數(shù)擴(kuò)展為同時(shí)設(shè)置輸入和輸出波特率。

上述接口中的 speed_t 是一系列波特率的標(biāo)志位,例如常用的波特率就為 B115200,參考下述選項(xiàng):

設(shè)置奇渣灶核偶校驗(yàn)位可以通過修改 termios 結(jié)構(gòu)體中的 c_cflag 成員來實(shí)現(xiàn),若無校驗(yàn),則將 PARENB 位設(shè)為 0;若有校驗(yàn),則 PARENB 為 1。之后再根據(jù) PARODD 來區(qū)分奇偶校驗(yàn), PARODD 為 1 表示奇校驗(yàn), PARODD 為 0 表示偶校驗(yàn)。例如設(shè)置無奇偶校驗(yàn)位:

設(shè)置數(shù)據(jù)位可以通過修改 termios 結(jié)構(gòu)體中的 c_cflag 成員來實(shí)現(xiàn),CS5、CS6、CS7 和 CS8 分別代表數(shù)據(jù)位 5、6、7 和 8。不過在設(shè)置數(shù)據(jù)位之前,需要先用 CSIZE 來做屏蔽字段,清楚這幾個(gè)標(biāo)志位,例如設(shè)置數(shù)據(jù)位為 8 位:

設(shè)置停止位可以通過修改 termios 結(jié)構(gòu)體中的 c_cflag 成員來實(shí)現(xiàn), CSTOPB 位為 1 表示 2 位停止位, CSTOPB 位為 0 標(biāo)志 1 位停止位。例如設(shè)置停止位為 1 位:

設(shè)置硬件控制流可以通過修改 termios 結(jié)構(gòu)體中的 c_cflag 成員來實(shí)現(xiàn), CRTSCTS 為 1 表示使用硬件控制流,為 0 表示不使用硬件控制流。例如

使能

硬件控制流:

當(dāng)然,最后還需要用 tcflush() 拋棄存儲(chǔ)在 fd 里的未接收的數(shù)據(jù)。

再利用接口 tcsetattr() 函數(shù)將配置信息寫入文件描述符 fd :

這樣整個(gè)串口最常用的用法就配置完成了。

具體的配置使用可以參考我的項(xiàng)目 HCI-Middleware 里的 hci_transport_uart_linux.c 文件。

參考:

linux c 獲取輸入的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux c 獲取輸入,探究Linux C編程如何獲取輸入數(shù)據(jù),Linux C 配置串口的信息別忘了在本站進(jìn)行查找喔。

四川成都云服務(wù)器租用托管【創(chuàng)新互聯(lián)】提供各地服務(wù)器租用,電信服務(wù)器托管、移動(dòng)服務(wù)器托管、聯(lián)通服務(wù)器托管,云服務(wù)器虛擬主機(jī)租用。成都機(jī)房托管咨詢:13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)、開啟建站+互聯(lián)網(wǎng)銷售服務(wù),與企業(yè)客戶共同成長,共創(chuàng)價(jià)值。


本文標(biāo)題:探究LinuxC編程如何獲取輸入數(shù)據(jù)(linuxc獲取輸入)
網(wǎng)站路徑:http://m.5511xx.com/article/cdccdgs.html