十六、文件和目录——设备特殊文件

16.1 设备特殊文件介绍

  • 每个文件系统所在的存储设备都由主、次设备号表示,文件系统为设备文件
  • major 和 minor 这两个宏可用来获得主、次设备号。所有文件都由对应的主设备号和次设备号,可以通过 st_dev 加这两个宏获得
  • 只有字符特殊文件和块特殊文件俺才有 st_rdev 值,其他的设备一般都是 st_dev ,这个两个值都在 stat 结构体中

  

  8 为主设备号,1为次设备号

16.2 例子

  

 1 #include <unistd.h>
 2 #include <fcntl.h>
 3 #include <string.h>
 4 #include <stdlib.h>
 5 #include <stdio.h>
 6 #include <sys/stat.h>
 7 #include <memory.h>
 8
 9
10 void out_dev(unsigned long devno)
11 {
12     //生成主设备号和次设备号
13     int mj = major(devno);
14     int mi = minor(devno);
15     printf("(%5d, %5d)\n", mj, mi);
16 }
17
18 int main(int argc, char *argv[])
19 {
20     if(argc < 2) {
21         fprintf(stderr, "usage: %s files\n", argv[0]);
22         exit(1);
23     }
24
25     struct stat buff;
26     int i;
27     for(i = 1; i < argc; i++) {
28         memset(&buff, 0, sizeof(buff));
29         //获取文件属性信息
30         if(lstat(argv[i], &buff) < 0) {
31             perror("lstat error");
32             continue;
33         }
34         printf("%-20s", argv[i]);
35
36         //判断是否是字符设备文件和块设备文件
37         if(S_ISCHR(buff.st_mode) || S_ISBLK(buff.st_mode)) {
38             //输出特殊设备文件具有的特殊设备号(包括主、次设备号)
39             //字符设备和块设备文件
40             out_dev(buff.st_rdev);
41         }
42
43         printf("    on:");
44
45         //输出所有文件都具有的设备号(包括主次设备号)
46         out_dev(buff.st_dev);
47     }
48
49     return 0;
50 }

  

原文地址:https://www.cnblogs.com/kele-dad/p/9080030.html

时间: 2024-10-25 10:03:32

十六、文件和目录——设备特殊文件的相关文章

Android学习路线(十六)支持不同设备

全世界的Android 设备有很多很多不同的形状和大小.凭借着广泛的设备类型,你的应用程序可以有机会拥有一个庞大的用户群.为了让你的应用在android平台上更成功,你的应用需要适配各种设备类型.有几个重要的差异必须被考虑进去,包括不同的语言,屏幕尺寸以及android平台版本. 这篇课程会教你如何使用基本的平台特性,利用可选的资源以及其他的特性来让你的应用能够在多种Android兼容设备上提供最佳的用户体验,使用一个简单的应用包(APK). 课程 支持不同语言 学习如何通过可选的资源来支持多语

Objective-C文件和目录操作,IOS文件操作,NSFileManager使用文件操作

转自 http://blog.csdn.net/swingpyzf/article/details/15185767 objective-c通过使用NSFileManager类来管理和操作文件.目录,NSFileManager,文件或目录是使用文件的路径名的唯一标示.每个路径名都是一个NSString对象. NSFileManager对象通过defaultManager方法来创建实例 列如: NSFileManager *fm = [NSFileManager defaultManager];

C#中拷贝指定文件夹下的所有文件夹目录到指定文件夹中的方法

原文地址:http://www.biye5u.com/article/Csharp/fileprog/2011/4198.html 本文给出了一个在C#中拷贝指定文件夹下的所有文件夹目录到指定文件夹中的方法. public static void CopyFolder(string strFromPath,string strToPath){       //如果源文件夹不存在,则创建       if (!Directory.Exists(strFromPath))       {      

织梦Dedecms主要文件夹目录及模板文件说明

虽然织梦DedeCMS因为安全问题被人所诟病,但瑕不掩瑜,无论从用户群数量还是时间等各方面,织梦DedeCMS都是国内排名前几的CMS建站程序.如果你想学习CMS的二次开发,织梦DedeCMS是必须需要研究的.对织梦DedeCMS的二次开发来说,了解织梦的目录构成.文件.函数则是必备的功课. 今天整理一篇关于Dedecms目录介绍的文章,对织梦DedeCMS的目录结构.核心文件.模板文件等做一个简单的介绍. 以下就是默认的织梦DedeCMS程序根目录中的各大文件夹和文件: /dede //管理后

文件与目录权限,文件查找

设定文件或目录影藏属性:    设定:chattr    chattr +i file************让一个文件[不能被删除.改名.设定连结也无法写入或新增数据.]即便是用sudo也不行.        chattr -i file********解除权限    查看:lsattr *********************************************************** umask 就是指定 『目前用户在建立文件或目录时候的权限默认值』 umask0002

002-linux命令-文件和目录、查看文件内容

一.文件和目录 cd /home :进入‘/home’目录 cd .. 返回上一级目录 cd ../..返回上两级目录 cd 进入个人的主目录 cd ~user1进入个人的主目录 cd - 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 显示隐藏文件 ls *[0-9]* 显示包含数字的文件名和目录名 tree 显示文件和目录由根目录开始的属性结构 lstree 显示文件和目录由根目录开始的属性结构

php递归遍历目录计算其大小(文件包括目录和普通文件)

<?php function countdir($path){ $size = 0; //size = 0; 跟 size = null; 怎么结果不一样 $path = rtrim($path, '/').'/'; //因为用户输入的路径带不带/都可以,所以我这里要处理一下 $handle = opendir($path); //打开一个句柄 while($file = readdir($handle)){ //读取句柄中的文件,包括目录和文件 if($file == '.' || $file

java下载文件指定目录下的文件

方法一: @RequestMapping('download')def download(HttpServletRequest request, HttpServletResponse response) { TtxSession session = getSession(request) String fileName='OrderData--20190225.csv' String pathName="C:\\export\\OrderData--20190225.csv" dow

递归获取文件的目录和子文件

package shi; import java.io.*; public class DiguiMulu { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub show(new File("C:/")); } public static void show(File f){ File fs[]=f.listFiles(); for(File