欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux開發(fā)_介紹目錄編程、標(biāo)準(zhǔn)文件編程

DS小龍哥-嵌入式技術(shù) ? 2022-09-17 15:42 ? 次閱讀

【摘要】 介紹Linux下目錄編程、標(biāo)準(zhǔn)文件編程、Linux系統(tǒng)文件接口編程、GDB調(diào)試等知識點(diǎn)。

任務(wù)1:目錄操作

學(xué)習(xí)系統(tǒng)編程: 主要學(xué)習(xí)系統(tǒng)函數(shù)的調(diào)用。

#include

/*

int argc :表示傳入的參數(shù)數(shù)量

char **argv:存放傳入的參數(shù)數(shù)據(jù),本身是一個(gè)二維數(shù)組。

argv[0] 表示第一個(gè)參數(shù)

argv[1] 表示第二個(gè)參數(shù)

*/

int main(int argc,char **argv)

{

int i;

for(i=0;i;i++)<>

{

printf("argv[%d]=%s\n",i,argv[i]);

}

return 0;

}

文件操作函數(shù): fopen、fclose、fread、fwrite…………

目錄操作函數(shù):

#include

#include

DIR *opendir(const char *name); //打開目錄

struct dirent *readdir(DIR *dirp); //讀取目錄信息

int closedir(DIR *dirp); //關(guān)閉目錄

struct dirent {

ino_t d_ino; /* inode number */

off_t d_off; /* offset to the next dirent */

unsigned short d_reclen; /* length of this record */

unsigned char d_type; /* type of file; not supported by all file system types */

char d_name[256]; /* filename 文件名稱 */

};

?? (練習(xí)目錄操作)

1.?實(shí)現(xiàn)ls *.c 類似的功能。 產(chǎn)品: 視頻播放器、音樂播放器

2.?強(qiáng)化第一題。ls *.c

(1)?拼接路徑: /mnt/hgfs/linux-share-dir/test/test.c (通過命令行傳入路徑)

示例:./a.out ./work/test .c

結(jié)果: ./work/test/123.c ./work/test/456.c

(2)?獲取絕對路徑: /mnt/hgfs/linux-share-dir/test/test.c

示例:./a.out ./work/test .c

結(jié)果: /user/work/test/123.c /user/work/test/456.c

3.?實(shí)現(xiàn)目錄的拷貝。 類似cp命令

int mkdir(const char *pathname, mode_t mode);

(1)?實(shí)現(xiàn)一層目錄的拷貝。

(2)?實(shí)現(xiàn)所有目錄的拷貝。(擴(kuò)展)

char *strstr(const char *haystack, const char *needle);

const char *haystack:在哪里查找

const char *needle:查找的數(shù)據(jù)

返回值: 返回查找到的數(shù)據(jù)的首地址

4.?實(shí)現(xiàn)cat命令效果

(1)?示例: cat 123.c

(2)?示例: cat 123.c -n (擴(kuò)展作業(yè))

5.?實(shí)現(xiàn)du命令的功能。

(1)?示例: du 123.c 顯示出文件的大小

(2)?示例: du 123.c -h 使用合理的單位顯示出文件的大小(擴(kuò)展作業(yè))

1.1 獲取當(dāng)前目錄絕對地址相關(guān)函數(shù)

#include

char *getcwd(char *buf, size_t size);

char *getwd(char *buf);

char *get_current_dir_name(void); //獲取絕對路徑

int chdir(const char *path); //修改當(dāng)前目錄,即切換目錄,相當(dāng)于 cd 命令

1.2 mkdir函數(shù)創(chuàng)建目錄

#include

#include

int mkdir(const char *pathname, mode_t mode); // 777

#include

#include

mode_t umask(mode_t mask); //設(shè)置創(chuàng)建目錄或者文件的默認(rèn)權(quán)限

一般在調(diào)用mkdir時(shí),需要先調(diào)用umask(0);

mode_t mode參數(shù)的填寫說明:

S_IRWXU 00700 user (file owner) has read, write and exe-cute permission

S_IRUSR 00400 user has read permission

S_IWUSR 00200 user has write permission

S_IXUSR 00100 user has execute permission

S_IRWXG 00070 group has read, write and execute permis-sion

S_IRGRP 00040 group has read permission

S_IWGRP 00020 group has write permission

S_IXGRP 00010 group has execute permission

S_IRWXO 00007 others have read, write and execute per-mission

S_IROTH 00004 others have read permission

S_IWOTH 00002 others have write permission

S_IXOTH 00001 others have execute permission

1.3 獲取目錄和文件的狀態(tài)信息

#include

#include

#include

int stat(const char *path, struct stat *buf); //直接獲取源文件的狀態(tài)()

int fstat(int fd, struct stat *buf); //獲取已經(jīng)打開成功的文件狀態(tài)

int lstat(const char *path, struct stat *buf); //不區(qū)分鏈接文件

//存放文件的狀態(tài)信息

struct stat {

dev_t st_dev; /* ID of device containing file */

ino_t st_ino; /* inode number */

mode_t st_mode; /* protection */

nlink_t st_nlink; /* number of hard links */

uid_t st_uid; /* user ID of owner */

gid_t st_gid; /* group ID of owner */

dev_t st_rdev; /* device ID (if special file) */

off_t st_size; /* 保存文件的大小*/

blksize_t st_blksize; /* blocksize for file system I/O */

blkcnt_t st_blocks; /* number of 512B blocks allocated */

time_t st_atime; /* time of last access */

time_t st_mtime; /* time of last modification */

time_t st_ctime; /* time of last status change */

};

m的參數(shù):-->st_mode

S_ISREG(m) 判斷是否是普通文件

S_ISDIR(m) directory? 目錄

S_ISCHR(m) character device?

S_ISBLK(m) block device?

S_ISFIFO(m) FIFO (named pipe)?

S_ISLNK(m) symbolic link? (Not in POSIX.1-1996.)

S_ISSOCK(m) socket? (Not in POSIX.1-1996.)

任務(wù)2:帶緩沖區(qū)的文件IO操作

文件中的3個(gè)標(biāo)準(zhǔn)指針:

stderr Standard error output stream. 存放標(biāo)準(zhǔn)錯(cuò)誤信息的文件

stdin Standard input stream. 存放標(biāo)準(zhǔn)輸入信息的文件

stdout Standard output stream. 存放標(biāo)準(zhǔn)輸出信息的文件

??示例:

#include

int main()

{

char buff[10];

while(1)

{

if(fread(buff,1,10,stdin)>0)

{

printf("讀出的數(shù)據(jù)=%s\n",buff);

}

}

return 0;

}

帶緩沖區(qū):這一系列函數(shù)適合操作普通文件。

size_t fread(void *restrict, size_t, size_t, FILE *restrict);

int fseek(FILE *, long, int);

size_t fwrite(const void *restrict, size_t, size_t, FILE *restrict);

int fclose(FILE *);

任務(wù)3:非緩沖區(qū)的文件IO操作

open()

#include

#include

#include

int open(const char *pathname, int flags);

int open(const char *pathname, int flags, mode_t mode); //在創(chuàng)建文件的時(shí)候才調(diào)用。

ssize_t read(int fd, void *buf, size_t count);

ssize_t write(int fd, const void *buf, size_t count);

int close(int fd);

??作業(yè)

1.?練習(xí)read、write讀寫函數(shù)。

2.?將cat命令編寫使用open一系列函數(shù)實(shí)現(xiàn)。

3.?將stat文件狀態(tài)的時(shí)間轉(zhuǎn)為標(biāo)準(zhǔn)時(shí)間打印出來。

st_atime=1516528093

st_mtime=1516586761

st_ctime=1516586761

以上3個(gè)值是秒單位的時(shí)間。 是從1970年1月1日0時(shí)0分0秒開始計(jì)算。

格式: xxxx年xx月xx日 xx時(shí):xx分:xx秒 星期x

轉(zhuǎn)換時(shí)間:(寫出一個(gè)類似于時(shí)鐘的程序,可以加一個(gè)鬧鐘,判斷時(shí)間是否到達(dá))

(1)?編寫一個(gè)函數(shù)實(shí)現(xiàn)秒單位的時(shí)間轉(zhuǎn)為標(biāo)準(zhǔn)時(shí)間

(2)?編寫一個(gè)函數(shù)實(shí)現(xiàn)將標(biāo)準(zhǔn)時(shí)間轉(zhuǎn)為秒單位

#include

int main(int argc,char**argv)

{

while(1)

{

long cnt=time(NULL); //獲取當(dāng)前系統(tǒng)時(shí)間

sleep(1); //睡眠一秒鐘

printf("cnt=%d\n",cnt);

}

return 0;

}

4.?擴(kuò)展作業(yè):重寫一個(gè)scanf與printf函數(shù)。

int printf(const char *format, ...);

int scanf(const char *format, ...);

…可變形參

任務(wù)4:安裝編輯器

??壓縮與打包名稱

.1.1 解壓命令的使用格式: tar -xvf <壓縮文件的名稱>

1.1.?想要指定解壓之后文件存放的位置: tar -xvf <壓縮文件的名稱> -C <指定的目錄>

1.2 打包指定文件夾或者文件: tar -cvf <新文件的名稱> <要打包的目錄>

示例: [root@wbyq test]# tar cvf SublimeText2.tar SublimeText2

注意:壓縮包不能直接在共享目錄下解壓。

??運(yùn)行軟件:

(1)?# ./sublime_text

(2)?# ./sublime_text & (后臺運(yùn)行程序)

??切換中文輸入法:Ctrl+空格

??linux操作系統(tǒng)保存可執(zhí)行文件的環(huán)境變量: PATH

(1)?打印環(huán)境變量的值:echo $PATH

pYYBAGMlPD6Aa3ULAACW_djF3yo579.png

(2)修改環(huán)境變量:# vim /etc/profile (系統(tǒng)開機(jī)的時(shí)候自動(dòng)執(zhí)行)

poYBAGMlPD-AMQi6AADSYnDeXQo992.png

(3) source命令立即生效環(huán)境變量。(只是針對當(dāng)前的終端)

示例:# source /etc/profile

任務(wù)5: GDB調(diào)試器

使用GDB調(diào)試工具: gdb <可執(zhí)行文件的名稱>

示例: gdb a.out

要支持調(diào)試程序,需要在gcc編譯的時(shí)候加上-g選項(xiàng)參數(shù)。

示例:gcc -g 123.c

??常用的命令:

breakpoints -- 設(shè)置程序的斷點(diǎn)(簡寫b)。 語法: b <行號>或者 b <函數(shù)名稱>

running -- 開始運(yùn)行程序(簡寫run)

list -- 打印出當(dāng)前的代碼

next -- 單步調(diào)試

quit -- 退出調(diào)試界面


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11351

    瀏覽量

    210494
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3639

    瀏覽量

    94028
  • GDB調(diào)試
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    1490
收藏 人收藏

    評論

    相關(guān)推薦

    編程交流負(fù)載標(biāo)準(zhǔn)

    編程交流負(fù)載標(biāo)準(zhǔn)是電力電子測試領(lǐng)域的重要組成部分,它為交流電源、變頻器、逆變器等設(shè)備的測試提供了標(biāo)準(zhǔn)化的負(fù)載條件。這種可編程性使得測試更加靈活和精確,能夠滿足不同設(shè)備和應(yīng)用場景的需求
    發(fā)表于 01-15 13:53

    支持遠(yuǎn)程脫機(jī)密文下載加密芯片SMEC編程開發(fā)介紹

    被監(jiān)聽,這些數(shù)據(jù)也無法下載到別的加密芯片。下面具體介紹密文數(shù)據(jù)產(chǎn)生和下載流程:1、從需要下載密文文件的SMEC編程器上獲取安全碼。2、開發(fā)者填入安全碼,選擇需要加密的目標(biāo)下載Hex
    發(fā)表于 01-08 11:30

    MCU編程語言和開發(fā)環(huán)境介紹

    微控制器單元(Microcontroller Unit,簡稱MCU)是嵌入式系統(tǒng)的核心,廣泛應(yīng)用于各種電子產(chǎn)品中。隨著技術(shù)的發(fā)展,MCU編程語言和開發(fā)環(huán)境也在不斷進(jìn)步,以適應(yīng)不同的應(yīng)用需求。 1.
    的頭像 發(fā)表于 11-01 11:51 ?1118次閱讀

    Linux應(yīng)用編程的基本概念

    Linux應(yīng)用編程涉及到在Linux環(huán)境下開發(fā)和運(yùn)行應(yīng)用程序的一系列概念。以下是一些涵蓋Linux應(yīng)用
    的頭像 發(fā)表于 10-24 17:19 ?297次閱讀

    Linux開發(fā)怎么學(xué)?

    令是使用 Linux 的基礎(chǔ),包括文件操作、目錄管理、用戶管理、進(jìn)程管理、網(wǎng)絡(luò)管理等方面??梢酝ㄟ^閱讀相關(guān)的書籍、在線教程等方式學(xué)習(xí)。以下是常用的命令實(shí)例。 # 列出當(dāng)前目錄下的
    發(fā)表于 10-10 14:34

    飛凌嵌入式ElfBoard ELF 1板卡-Linux C接口編程入門之文件I/O

    對待,例如:設(shè)備文件Linux將硬件設(shè)備抽象為文件,可以通過設(shè)備文件進(jìn)行訪問和操作。例如,ELF1開發(fā)板的uart7接口可以通過/dev/
    發(fā)表于 10-09 15:38

    Linux文件系統(tǒng)的掛載過程

    Linux文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點(diǎn),它是內(nèi)核啟動(dòng)時(shí)掛載的第一個(gè)
    的頭像 發(fā)表于 10-05 16:50 ?531次閱讀

    linux開發(fā)板和單片機(jī)開發(fā)的區(qū)別

    、PIC等,處理能力和內(nèi)存容量相對較低。 操作系統(tǒng) Linux開發(fā)板通常使用Linux操作系統(tǒng),具有豐富的軟件資源和開發(fā)工具。單片機(jī)開發(fā)則通
    的頭像 發(fā)表于 08-30 15:30 ?1307次閱讀

    Linux 驅(qū)動(dòng)開發(fā)與應(yīng)用開發(fā),你知道多少?

    一、Linux驅(qū)動(dòng)開發(fā)與應(yīng)用開發(fā)的區(qū)別開發(fā)層次不同:Linux驅(qū)動(dòng)開發(fā)主要是針對硬件設(shè)備進(jìn)行
    的頭像 發(fā)表于 08-30 12:16 ?949次閱讀
    <b class='flag-5'>Linux</b> 驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>與應(yīng)用<b class='flag-5'>開發(fā)</b>,你知道多少?

    工業(yè)機(jī)器人的四種編程(示教編程、離線編程、自增強(qiáng)現(xiàn)實(shí)編程編程)剖析!

    和工作量,提高編程效率,實(shí)現(xiàn)編程的自適應(yīng)性,從而提高生產(chǎn)效率,是機(jī)器人編程技術(shù)發(fā)展的終極追求。本文將就機(jī)器人編程技術(shù)的發(fā)展作一介紹,希望能給
    的頭像 發(fā)表于 08-30 12:14 ?3197次閱讀
    工業(yè)機(jī)器人的四種<b class='flag-5'>編程</b>(示教<b class='flag-5'>編程</b>、離線<b class='flag-5'>編程</b>、自增強(qiáng)現(xiàn)實(shí)<b class='flag-5'>編程</b>主<b class='flag-5'>編程</b>)剖析!

    esp32用什么軟件編程

    。 概述 ESP32具有豐富的外設(shè)接口和靈活的編程方式,支持多種編程語言和開發(fā)環(huán)境。本文將詳細(xì)介紹ESP32的編程軟件,包括
    的頭像 發(fā)表于 08-19 17:24 ?4410次閱讀

    編程電源如何編程

    編程電源如何編程? 可編程電源是一種可以調(diào)節(jié)輸出電壓和電流的電源設(shè)備,廣泛應(yīng)用于電子設(shè)備測試、研發(fā)和生產(chǎn)等領(lǐng)域。通過編程,用戶可以根據(jù)需要設(shè)置電源的輸出參數(shù),實(shí)現(xiàn)自動(dòng)化測試和控制。本
    的頭像 發(fā)表于 06-10 15:24 ?1574次閱讀

    fpga開發(fā)需要掌握哪些編程語言

    FPGA(現(xiàn)場可編程門陣列)開發(fā)涉及多種編程語言和技術(shù).
    的頭像 發(fā)表于 03-27 14:34 ?1647次閱讀

    OpenHarmony內(nèi)核編程實(shí)戰(zhàn)

    編寫程序,讓開發(fā)板在串口調(diào)試工具中輸出”Hello,OpenHarmony“。▍操作在源碼的根目錄中有名為”applications“的文件,他存放著應(yīng)用程序樣例
    的頭像 發(fā)表于 03-27 08:31 ?960次閱讀
    OpenHarmony內(nèi)核<b class='flag-5'>編程</b>實(shí)戰(zhàn)

    fpga用的是什么編程語言 fpga用什么語言開發(fā)

    和VHDL都是用于邏輯設(shè)計(jì)的硬件描述語言,并且都已成為IEEE標(biāo)準(zhǔn)。它們能形式化地抽象表示電路的結(jié)構(gòu)和行為,支持邏輯設(shè)計(jì)中層次與領(lǐng)域的描述,具有電路仿真與驗(yàn)證機(jī)制以保證設(shè)計(jì)的正確性,并便于文檔管理和設(shè)計(jì)重用。 fpga用什么語言開發(fā) FPGA(現(xiàn)場可
    的頭像 發(fā)表于 03-14 17:09 ?3656次閱讀