1. 程式人生 > >嵌入式學習28(linux系統函式之檔案、資料夾管理相關函式)

嵌入式學習28(linux系統函式之檔案、資料夾管理相關函式)

步入linux系統函式的學習了,隨時隨地都要man一下,忌死記。

linux系統呼叫:即linux作業系統提供的函式,只能用於linux。
命令就是一些函式
1)檔案系統管理相關的系統呼叫
檔案相關操作
file:存放在外存裝置上的一堆資料(記憶體和外存的互動,外存資料存取慢)
普通檔案操作:(open read write lseek close) 輔助函式(stat chmod chown remove )

示例程式碼:求檔案的md5加密

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h> #include <stdlib.h> #include "md5.h" //#define _DEBUG 便於除錯 int get_file_size(const char* name); int main(int argc,char** argv) { if(argc!=2) { fprintf(stderr,"引數個數錯誤!\n");//標準錯誤列印 return -1; } //open函式的返回值為檔案描述符,用來唯一的標識開啟的檔案 int fd=open(argv[1
],O_RDONLY); if(-1==fd) { perror("open");//自動新增冒號和原因 } int len;//存放檔案長度 len=get_file_size(argv[1]); char* buf=malloc(len); read(fd,buf,len);//把檔案存到記憶體 #ifdef _DEBUG printf("檔案長度: %d\n檔案內容:\n%s",len,buf); #endif char* md5_val=md5_encrypt(buf,len); printf("%s\n"
,md5_val); free(buf); close(fd); return 0; } int get_file_size(const char* name) { struct stat st; if(-1==stat(name,&st))//stat可以求出一個檔案的所有資訊 { perror("get_file_size");//系統列印錯誤//列印 return -1; } return st.st_size; }

資料夾相關操作(opendir readdir closedir)

//資料夾的遍歷
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
void main(int argc,char** argv)
{
    if(2!=argc)
    {
        printf("引數不足\n");
        return;
    }
    DIR* dir=opendir(argv[1]);
    if(dir==NULL)
    {
//      fprintf(stderr,"opendir:%s\n",strerror(errno));
//      strerror可以將錯誤代號翻譯成一串字串,errno用於存放最近一次的錯誤
        perror("opendir");//errno is set appropriately
        return;
    }

    struct dirent* rp=NULL;
    struct stat st;//stat中含有檔案詳細資訊
    char name[100];
    while(rp=readdir(dir))//while(後接表示式)
    {
            sprintf(name,"%s/%s",argv[1],rp->d_name);
            stat(name,&st);
            if(S_ISDIR(st.st_mode))
                    continue;
            if(strcmp(rp->d_name,".")!=0  && strcmp(rp->d_name,"..")!=0)
                    printf("%s\n",rp->d_name);

    }
    closedir(dir);
}

相關推薦

嵌入式學習28linux系統函式檔案資料管理相關函式

步入linux系統函式的學習了,隨時隨地都要man一下,忌死記。 linux系統呼叫:即linux作業系統提供的函式,只能用於linux。 命令就是一些函式 1)檔案系統管理相關的系統呼叫 檔

Python檔案資料處理相關函式:刪除複製移動

這裡使用的是Python3.7版本,在Win10系統上執行 有關刪除檔案、資料夾的問題,網上有不少資料,但作為一個新手,感覺很多都介紹的模稜兩可,必須要自己測試過才能知道到底是怎麼回事,因此在這裡簡單介紹一下Python處理檔案和資料夾的函式。 目錄 刪除

Linux系統呼叫檔案函式

先說明可用的檔案I/O函式——開啟檔案,讀檔案,寫檔案等。 但是在Linux中大多數檔案I/O只需要用到5個函式:open、read、write、lseek及close。 一、open函式 呼叫open函式可以開啟或建立一個檔案。 返回值:若成功則返回檔案描述符,若出錯則返回-

Linux系統呼叫檔案描述符

每個執行的中的程式被稱為程序,他有一些與之關聯的檔案描述符。 檔案描述符就相當於Windows中的File * 指標,標記著檔案資訊,然而我們可以知道檔案描述符為一個非負整數,怎麼用一個非負整數描述一個檔案呢。 在作業系統中,每一個程序都有標記自己的程序控制塊(PCB)。 在PCB中,就

linux系統程式設計檔案I/O

一、檔案描述符              linux系統中,所有開啟的檔案都對應一個數字,這個數字由系統來分配,稱為檔案描述符。        PCB程序控制塊裡有檔案描述符表,以陣列形式存放於核心區。         一個程序預設開啟3個檔案描述符  STDIN_FILE

VirtualBox內Linux系統怎樣與Windows共享資料

轉載自:https://jingyan.baidu.com/article/2fb0ba40541a5900f2ec5f07.html VirtualBox內Linux系統怎樣與Windows共享資料夾 普遍的是在Windows本機用虛擬機器安裝Linux系統,然而Windows本機與虛擬機器內Linux

Linux命令學習:建立刪除檔案資料的命令

今天學習了幾個命令,是建立、刪除檔案和資料夾的,在linux裡,資料夾是目錄,下面說下我學習的命令。 建立資料夾【mkdir】   一、mkdir命令使用許可權     所有使用者都可以在終端使用 mkdir

linux命令學習一 :touch和mkdir 建立檔案資料

一、檢視命令詳情 touch --help mkdir --help   二、常用命令 1、建立檔案:  touch  filename 2、建立資料夾:mkdir  directoryname       可建立父資料夾或建立多個或建立多級資料夾 mkdir -

linux系統中不同顏色的資料及根目錄介紹

檔案顏色的代表含義: 藍色:目錄 綠色:可執行檔案 紅色:壓縮檔案 藍綠色:連結檔案 白色:其他檔案 黃色:裝置檔案,其中包括block,char,fifo. 根目錄的簡單介紹: 描述

Java實現zip檔案壓縮單個檔案資料以及檔案資料的組合壓縮

Java實現zip檔案壓縮(單個檔案、資料夾以及檔案和資料夾的組合壓縮) 2016年10月04日 23:22:24 ljheee 閱讀數:13215 標籤: 壓縮javazip 更多 個人分類: Java應用 版權宣告:本文為博

python實現將某程式碼檔案複製/移動到指定路徑下 檔案資料的移動複製刪除重新命名

    用python實現將某程式碼檔案複製/移動到指定路徑下。 場景例如:mv ./xxx/git/project1/test.sh ./xxx/tmp/tmp/1/test.sh (相對路徑./xxx/tmp/tmp/1/不一定存在)   # -

Linux 檢視以及修改檔案資料的許可權

1. linux下修改檔案使用者組 chgrp: change group的簡寫,修改檔案所屬的使用者組。 chgrp users test.log 修改後檢視 ls -l -rwxrwx— 1 work users 0 Jun 8 15:46 test.log

Linux隨筆 - Linux統計某資料檔案資料的個數

統計某資料夾下檔案的個數  ls -l |grep "^-"|wc -l   統計某資料夾下目錄的個數   ls -l |grep "^d"|wc -l   統計資料夾下檔案的個數,包括子資料夾裡的   ls -lR|grep "^-"|wc -l   統計/i

Linux/Ubuntu】查詢檔案資料大小

使用命令列工具du,ls查詢檔案和資料夾大小 du命令 du命令可以檢視資料夾的結構及其大小,可以使用-d引數和-B引數來簡單的查詢檔案/資料夾: 其中-d n代表資料夾的查詢深度,n為向內查詢幾層

兩個linux伺服器互相拷貝檔案或者資料

例子: 互相拷貝檔案: scp /etc/mysql/my.cnf [email protected]:/etc/mysql 將mysql配置檔案上傳到136伺服器相應資料夾內 scp [email protected]:/etc/mysql/my.cnf /et

linux scp遠端拷貝檔案資料

 1、拷貝本機/home/administrator/test整個目錄至遠端主機192.168.1.100的/root目錄下   程式碼如下: scp -r /home/administrator/test/ [email protected]:/root/

IntelliJ IDEA 如何重新命名變數檔案資料。--說高階點就是【重構】

我表示,我在剛剛使用這個編輯器的時候,還真不知道怎麼去重新命名一個變數,重新命名一個檔案,或者一個資料夾。 理論上講,你要是改動一個地方,那麼,其他所有引用的地方,應該跟著都給自動的改了的。 不然,你一個個的改,要是引用的地方多了去了,那不改死你啊。 所以,這肯定有個方

putty對Linux上傳下載檔案資料 從Windows複製檔案Linux顯示亂碼問題

  putty是一個開源軟體,目前為止最新版本為0.70。對於檔案或資料夾的上傳下載,在Windows下它提供了pscp和psftp兩個命令。 (1).pscp   pscp在命令提示符中使用,只要putty(ssh)能夠遠端,就能使用該命令。 pscp [Windows上的路徑,可絕對可相對]

linux|批量建立檔案資料或刪除——萬用字元

前言: 在關於檔案操作的部分,我們之前學到的一些有趣的命令。它有一個問題就是一次只能在一個檔案上執行,效率不高。那麼萬用字元就派上用場了!!! 萬用字元是什麼: 萬用字

Centos系統中檢視檔案資料大小

當磁碟大小超過標準時會有報警提示,這時如果掌握df和du命令是非常明智的選擇。 df可以檢視一級資料夾大小、使用比例、檔案系統及其掛入點,但對檔案卻無能為力。 du可以檢視檔案及資料夾的大小。 兩者配合使用,非常有效。比如用df檢視哪個一級目錄過大,然後用df檢視資料夾或檔