标签:windows 挂载点 ctr 注意 柱面 英文 内核引导 media 数据处理
struct stat
{
mode_t st_mode; /* file type & mode (permissions) */
ino_t st_ino; /* i-node number (serial number) */
dev_t st_dev; /* device number (file system) */
dev_t st_rdev; /* device number for special files */
nlink_t st_nlink; /* number of links */
uid_t st_uid; /* user ID of owner */
gid_t st_gid; /* group ID of owner */
off_t st_size; /* size in bytes, for regular files */
struct timespec st_atim; /* time of last access */
struct timespec st_mtim; /* time of last modification */
struct timespec st_ctim; /* time of last file status change */
blksize_t st_blksize; /* best I/O block size */
blkcnt_t st_blocks; /* number of disk blocks allocated */
};
typedef __dev_t dev_t;
#define major(dev) gnu_dev_major (dev)
/**
* 为每个命令行参数打印设备号,另外,若此参数引用的是字符特殊文件或者块特殊文件,
* 则还打印特殊文件的st_rdev值
*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
struct stat buf;
int i = 0;
for (i = 1; i < argc; i++)
{
printf("%s: ", argv[i]);
if (stat(argv[i], &buf) < 0)
{
err_ret("stat error");
continue;
}
printf("dev = %d/%d ", major(buf.st_dev), minor(buf.st_dev));
if (S_ISCHR(buf.st_mode))
{
printf("(character) rdev = %d/%d", major(buf.st_rdev), minor(buf.st_rdev));
}
else if (S_ISBLK(buf.st_mode))
{
printf("(block) rdev = %d/%d", major(buf.st_rdev), minor(buf.st_rdev));
}
printf("\n");
}
exit(0);
}
$ ./a.out / /home/fireway/ /dev/tty[01]
/: dev = 8/1
/home/fireway/: dev = 8/1
/dev/tty0: dev = 0/6 (character) rdev = 4/0
/dev/tty1: dev = 0/6 (character) rdev = 4/1
$ mount <---------------------哪些目录安装在哪些设备上(详细原理见下文)
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/112/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=lightdm)
$ ls -l /dev/tty[01] /dev/sda[01]
brw-rw---- 1 root disk 8, 1 11月 17 07:52 /dev/sda1
crw--w---- 1 root tty 4, 0 11月 17 07:52 /dev/tty0
crw-rw---- 1 root tty 4, 1 11月 17 07:52 /dev/tty1
设备 | 在Linux内的文件名 |
IDE硬盘 | /dev/hd[a-d] |
SCSI / SATA / USB 硬盘 | /dev/sd[a-p] |
U盘,全称USB闪存盘,英文名“USB flash disk” | /dev/sd[a-p](与SATA 相同) |
软盘驱动器 | /dev/fd[0-1] |
打印机 | 25 针: /dev/lp[0-2] USB: /dev/usb/lp[0-15] |
鼠标 | USB: /dev/usb/mouse[0-15] PS2: /dev/psaux |
当前CDROM/DVDROM | /dev/cdrom |
当前的鼠标 | /dev/mouse |
磁带机 | IDE: /dev/ht0
SCSI: /dev/st0 |
P1:/dev/hda1
P2:/dev/hda2
P3:/dev/hda3
P4:/dev/hda4
P1:/dev/hda1
P2:/dev/hda2
L1:/dev/hda5
L2:/dev/hda6
L3:/dev/hda7
L4:/dev/hda8
L5:/dev/hda9
/ 根目录
├── bin 存放用户二进制文件
├── boot 存放内核引导配置文件
├── dev 存放设备文件
├── etc 存放系统配置文件
├── home 用户主目录
├── lib 动态共享库
├── lost+found 文件系统恢复时的恢复文件
├── media 可卸载存储介质挂载点
├── mnt 文件系统临时挂载点
├── opt 附加的应用程序包
├── proc 系统内存的映射目录,提供内核与进程信息
├── root root 用户主目录
├── sbin 存放系统二进制文件
├── srv 存放服务相关数据
├── sys sys 虚拟文件系统挂载点
├── tmp 存放临时文件
├── usr 存放用户应用程序
└── var 存放邮件、系统日志等变化文件
操作系统 | 文件系统 |
windows 98以前 | FAT(或FAT16) |
windows 2000 | NTFS |
Linux | Ex2(Linux second extended file system, ext2fs) |
标签:windows 挂载点 ctr 注意 柱面 英文 内核引导 media 数据处理
原文地址:http://www.cnblogs.com/fireway/p/6103261.html