文档章节

文件IO操作(08)——stat函数(2)

乌合之众
 乌合之众
发布于 2014/11/18 15:17
字数 407
阅读 13
收藏 0

fstat函数输出三个标准文件流的stat信息

STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO的信息

 

   1: #include <sys/types.h>
   2: #include <sys/stat.h>
   3: #include <unistd.h>
   4: #include <stdio.h>
   5: #include <stdlib.h>
   6: #include <string.h>
   7: #include <errno.h>
   8: #include <time.h>
   9:
  10: //       int stat(const char *path, struct stat *buf);
  11: 
  12: void fstat_show(int fd)
  13: {
  14: 
  15:     struct stat buf;
  16:     if(0==fstat(fd,&buf)){
  17:         printf("文件fd:\"%d\"\n",fd);
  18:         printf("大小:%ld\t\t块:%ld\t\tIO块:%ld\n设备:%ldh/%ldd\t\tInode:%ld\t\t硬链接:%ld\n",
  19:             buf.st_size,buf.st_blocks,buf.st_blksize,0,buf.st_dev,
  20:             buf.st_ino,buf.st_nlink);
  21:         printf("权限:(0%o/",buf.st_mode & 0777);
  22:         if(buf.st_mode & S_IFDIR){
  23:             printf("d");
  24:         }else{
  25:             printf("-");
  26:         }
  27:         if(buf.st_mode & S_IRUSR){
  28:             printf("r");
  29:         }else{
  30:             printf("-");
  31:         }
  32:         if(buf.st_mode & S_IWUSR){
  33:             printf("w");
  34:         }else{
  35:             printf("-");
  36:         }
  37:         if(buf.st_mode & S_IXUSR){
  38:             printf("x");
  39:         }else{
  40:             printf("-");
  41:         }
  42:         if(buf.st_mode & S_IRGRP){
  43:             printf("r");
  44:         }else{
  45:             printf("-");
  46:         }
  47:         if(buf.st_mode & S_IWGRP){
  48:             printf("w");
  49:         }else{
  50:             printf("-");
  51:         }
  52:         if(buf.st_mode & S_IXGRP){
  53:             printf("x");
  54:         }else{
  55:             printf("-");
  56:         }
  57:         if(buf.st_mode & S_IROTH){
  58:             printf("r");
  59:         }else{
  60:             printf("-");
  61:         }
  62:         if(buf.st_mode & S_IWOTH){
  63:             printf("w");
  64:         }else{
  65:             printf("-");
  66:         }
  67:         if(buf.st_mode & S_IXOTH){
  68:             printf("x");
  69:         }else{
  70:             printf("-");
  71:         }
  72: 
  73:         printf(")\tUid:( %ld )\tGid:( %ld )\n",buf.st_uid,buf.st_gid);
  74:         struct tm tm_tmp;
  75:         localtime_r(&(buf.st_atime),&tm_tmp);
  76:         printf("最近访问:%s",asctime(&tm_tmp));
  77:
  78:         localtime_r(&(buf.st_mtime),&tm_tmp);
  79:         printf("最近更改:%s",asctime(&tm_tmp));
  80: 
  81:         localtime_r(&(buf.st_ctime),&tm_tmp);
  82:         printf("最近改动:%s",asctime(&tm_tmp));
  83: 
  84: 
  85:     }else{
  86:         perror("error ");
  87:     }
  88: }
  89: 
  90: 
  91: //===========================================================
  92: 
  93: 
  94: int main(int argc,char* argv[])
  95: {
  96:     fstat_show(STDIN_FILENO);
  97:     fstat_show(STDOUT_FILENO);
  98:     fstat_show(STDERR_FILENO);
  99: 
 100:     return 0;
 101: }

调用system函数来输出

 

   1: #include <stdlib.h>
   2: #include <sys/types.h>
   3: #include <sys/stat.h>
   4: #include <unistd.h>
   5: 
   6: int main()
   7: {
   8:     puts("STDIN_FILENO");
   9:     //int mypid=getpid();
  10:     //char cmd[256]={0};
  11:
  12:     system("stat /dev/pts/1");
  13: 
  14:     //puts("STDOUT_FILENO");
  15:     //puts("STDERR_FILENO");
  16:     return 0;
  17: }

© 著作权归作者所有

乌合之众
粉丝 14
博文 90
码字总数 79438
作品 1
海淀
程序员
私信 提问
来客电商

来客电商 项目介绍 非常惭愧地说,最开始是完全模仿着拼多多的功能模块来做这套系统,也仅仅是为了磨合团队,提高业务水平而已。 可谁知道,做完了拼团基本功能,还发现有评价没有做,好吧,...

沐零
2018/09/10
0
0
周公51CTO博客有价值文章整理

说明:为方便朋友们查看本博客的文章,特地整理了本博客中周公认为值得一看的文章,不过有些文章因为年代久远且技术更新快的原因,里面所讲述的方法或者理论不再适合,请大家斟酌。 asp.net ...

周金桥
2018/06/29
0
0
C++ 跨平台多功能扩展库 - cpgf

cpgf 可为C++代码增加反射(元数据)、序列化、以及Luau和Python脚本绑定等功能,且不依赖任何外部工具。 cpgf 的目标是扩展C++语言,其中包含许多易于使用的功能,这些功能仅在其他更高级别...

wqking
2018/09/17
0
0
ECSHOP_jquery兼容方案

ecshop把AJAX事件和JSON解析的模块放在common/transport.js之中,可以说它也有自己封装的一套工具,这其实是很正常的。 但恰恰的,在封装JSON各种方法的同时对object的模型进行了重写,这个就...

喵王不瞌睡
2014/07/09
0
0
项目协作管理--Mingle

Mingle 是关于项目的协作管理(非开源软件)。Mingle的独特之处以及它在敏捷项目管理和团队协作方面的强大功能包括: Mingle并不局限于敏捷方法论——它默认提供了三种软件开发模版(Scrum, ...

匿名
2008/11/10
6.9K
0

没有更多内容

加载失败,请刷新页面

加载更多

Oracle:本地表空间管理,字典表空间管理

本地管理表空间 一、概述 1、理解本地管理表空间的由来 2、理解什么是字典管理表空间及工作原理 3、理解本地管理表空间的优势(为什么要使用本地管理表空间) 4、理解本地管理表空间的内部结...

突突突酱
21分钟前
1
0
深度剖析Spring Boot源码,看完薪资敢要30K!

1 实例化SpringApplication SpringApplication.run(BootifulApplication.class, args); public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) {ret......

Java架构资源分享
24分钟前
4
0
tornadofx控制台输出“三门问题”,蒙特卡洛算法

import tornadofx.*fun main() { val wins = intProperty() val lose = intProperty() val Msg = stringProperty()// 1000万次 val n = 10000000 (1..n......

oschina4cyy
30分钟前
1
0
你可能不知道的MySQL中的定点数类型

定点数类型 正因为用浮点数表示小数可能会有不精确的情况,在一些情况下我们必须保证小数是精确的,所以设计MySQL的大叔们提出一种称之为定点数的数据类型,它也是存储小数的一种方式: 其中...

爱编程的浪子
33分钟前
2
0
第十讲:Python爬取网页图片并保存到本地,包含次层页面

上一讲我们讲到了从昵图网的首页下载图片到本地,但是我们发现首页上面的大部分链接其实都可以进入到二级页面。 在二级页面里面,我们也可以同样进行图片的下载,通过层层循环我们可以把网址...

刘日辉
40分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部