9、RK3399J 檔案IO介紹
1、檢視mount掛載情況
```go
cat /proc/mounts
2、掛載虛擬檔案系統
mount -t sysfs none /mnt
3、 檔案從哪裡來
4、核心的 sys_open、sys_read 會做什麼?
5、app呼叫系統介面圖
6、字元裝置節點介紹
7、檔案拷貝例項
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/mman.h>
/*
* ./copy 1.txt 2.txt
* argc = 3
* argv[0] = "./copy"
* argv[1] = "1.txt"
* argv[2] = "2.txt"
*/
int main(int argc, char **argv)
{
int fd_old, fd_new;
struct stat stat;
char *buf;
/* 1. 判斷引數 */
if (argc != 3)
{
printf("Usage: %s <old-file> <new-file>\n", argv[0]);
return -1;
}
/* 2. 開啟老檔案 */
fd_old = open(argv[1], O_RDONLY);
if (fd_old == -1)
{
printf("can not open file %s\n", argv[1]);
return -1;
}
/* 3. 確定老檔案的大小 */
if (fstat(fd_old, &stat) == -1)
{
printf("can not get stat of file %s\n", argv[1]);
return -1;
}
/* 4. 對映老檔案 */
buf = mmap(NULL, stat.st_size, PROT_READ, MAP_SHARED, fd_old, 0);
if (buf == MAP_FAILED)
{
printf("can not mmap file %s\n", argv[1]);
return -1;
}
/* 5. 建立新檔案 */
fd_new = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
if (fd_new == -1)
{
printf("can not creat file %s\n", argv[2]);
return -1;
}
/* 6. 寫新檔案 */
if (write(fd_new, buf, stat.st_size) != stat.st_size)
{
printf("can not write %s\n", argv[2]);
return -1;
}
/* 5. 關閉檔案 */
close(fd_old);
close(fd_new);
return 0;
}
相關文章
- CPL檔案利用介紹
- YAM yml 配置檔案介紹
- 檔案管理簡單介紹
- logstash 配置檔案語法介紹
- 檔案傳輸協議介紹協議
- Linux 檔案系統基本介紹Linux
- Linux中的IO模型介紹Linux模型
- 檔案IO操作
- Qt 檔案模型(QFileSystemModel)詳細介紹QT模型
- ros學習檔案系統介紹ROS
- 如何快速傳輸大檔案,介紹大檔案快速方法
- dxf檔案用什麼開啟(dxf檔案格式介紹)
- 網路 IO 模型簡單介紹模型
- 檔案系統(十一):Linux Squashfs只讀檔案系統介紹Linux
- Java 檔案 IO 操作Java
- Linux C 檔案IOLinux
- Python IO檔案管理Python
- Linux檔案IO操作Linux
- vue 腳手架 配置 及檔案介紹Vue
- 五種IO模型介紹和對比模型
- kubernetes實戰篇之helm示例yaml檔案檔案詳細介紹YAML
- linux 檔案屬性介紹及改變方法Linux
- keepalived(一)原理介紹和配置檔案詳解
- FASTDFS開源分散式檔案系統介紹AST分散式
- 簡單介紹Linux環境變數檔案Linux變數
- 帝國CMS網站匯入檔案介紹網站
- Android入門教程 | mmap 檔案對映介紹Android
- 檔案IO的學習
- 什麼是檔案傳輸,介紹檔案傳輸的發展程式
- vue 腳手架 配置 及檔案介紹 2.0 版本Vue
- Objective-C檔案組織介紹(附程式碼)Object
- linux使用者及組相關檔案介紹Linux
- Linux快速入門(05)Linux檔案系統介紹Linux
- 簡單介紹一下 Linux 檔案系統?Linux
- 檔案系統 FTP Ubuntu 安裝入門介紹FTPUbuntu
- 介紹下extern和標頭檔案的聯絡
- 『學了就忘』Linux檔案系統管理 — 57、Linux檔案系統介紹Linux
- Java-IO:複製檔案Java