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;
}
相關文章
- podspec檔案介紹
- CPL檔案利用介紹
- 檔案管理簡單介紹
- Android R檔案介紹Android
- ORACLE主要配置檔案介紹Oracle
- Tuxedo的配置檔案介紹UX
- unix口令檔案介紹(轉)
- YAM yml 配置檔案介紹
- Spring IO Platform專案的介紹和應用SpringPlatform
- 檔案傳輸協議介紹協議
- 檔案IO操作
- 網路 IO 模型簡單介紹模型
- Linux中的IO模型介紹Linux模型
- JavaIO 總結筆記 IO簡介和File檔案JavaAI筆記
- Linux 檔案系統基本介紹Linux
- ros學習檔案系統介紹ROS
- logstash 配置檔案語法介紹
- 24位BMP檔案儲存介紹
- 如何快速傳輸大檔案,介紹大檔案快速方法
- dxf檔案用什麼開啟(dxf檔案格式介紹)
- 五種IO模型介紹和對比模型
- Java 檔案 IO 操作Java
- iOS檔案IO操作iOS
- 檔案讀寫IO
- RMAN恢復表空間,資料檔案,歸檔檔案,控制檔案等介紹
- vue 腳手架 配置 及檔案介紹Vue
- ORACLE初始化引數檔案介紹Oracle
- PKI 證書檔案編碼格式介紹
- Cas(03)——CasServer中各配置檔案介紹Server
- Android的Manifest配置檔案介紹Android
- mysql配置檔案中mysqld_safe介紹MySql
- Qt 檔案模型(QFileSystemModel)詳細介紹QT模型
- Linux 檔案系統-ext3 檔案系統介紹(轉)Linux
- 檔案系統(十一):Linux Squashfs只讀檔案系統介紹Linux
- 標準IO與檔案IO 的區別
- Linux C 檔案IOLinux
- Python IO檔案管理Python
- Linux檔案IO操作Linux