• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言编写获取Linux本地目录及本机信息的小程序实例

C语言编写获取Linux本地目录及本机信息的小程序实例

作者:张大鹏 字体:[增加 减小] 来源:互联网 时间:2017-05-28

张大鹏 通过本文主要向大家介绍了c语言获取本机ip,c语言获取本机ip地址,c语言编写实例,c语言编程实例题,c语言高级编程实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

展示目录的小程序
展示指定目录的小程序:

#include <unistd.h>
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <sys/stat.h>
#include <stdlib.h>
 
void printdir(char *dir,int depth){
  DIR *dp;
  struct dirent *entry;
  struct stat statbuf;
 
  if((dp = opendir(dir)) == NULL){
    fprintf(stderr, "cannot open directory: %s\n", dir);
    return;
  }
 
  chdir(dir);
  while((entry = readdir(dp)) != NULL){
    lstat(entry->d_name,&statbuf);
    if(S_ISDIR(statbuf.st_mode)){
      /*Found a directory,but ignore . and ..*/
      if(strcmp(".",entry->d_name) == 0 || strcmp("..",entry->d_name) == 0){
        continue;
      }
      printf("%*s%s/ \n",depth,"",entry->d_name);
      /*Recurse at a new indent level*/
      printdir(entry->d_name,depth+4);
    }else{
      printf("%*s%s \n",depth,"",entry->d_name);
    }
 
  }
}
int main(){
  /*
  show directory
  */
  printf("Directory scan of /home:\n");
  printdir("/home",0);
  printf("done. \n");
   
  exit(0);
}
</div>

根据参数输出目录的结构

#include <unistd.h>
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <sys/stat.h>
#include <stdlib.h>
 
void printdir(char *dir,int depth){
  DIR *dp;
  struct dirent *entry;
  struct stat statbuf;
 
  if((dp = opendir(dir)) == NULL){
    fprintf(stderr, "cannot open directory: %s\n", dir);
    return;
  }
 
  chdir(dir);
  while((entry = readdir(dp)) != NULL){
    lstat(entry->d_name,&statbuf);
    if(S_ISDIR(statbuf.st_mode)){
      /*Found a directory,but ignore . and ..*/
      if(strcmp(".",entry->d_name) == 0 || strcmp("..",entry->d_name) == 0){
        continue;
      }
      printf("%*s%s/ \n",depth,"",entry->d_name);
      /*Recurse at a new indent level*/
      printdir(entry->d_name,depth+4);
    }else{
      printf("%*s%s \n",depth,"",entry->d_name);
    }
 
  }
}
int main(int argc, char* argv[]){
  /*
  show directory
  */
  char *topdir = ".";
  if(argc >= 2){
    topdir = argv[1];
  }
  printf("Directory scan of %s:\n",topdir);
  printdir(topdir,0);
  printf("done. \n");
   
  exit(0);
}

</div>

获取主机基本信息
获取主机用户信息:

#include <sys/types.h>
#include <pwd.h>
#include <stdio.h>
#include <unistd.h>
 
int main(){
  uid_t uid;
  gid_t gid;
 
  struct passwd *pw;
  uid = getuid();
  gid = getgid();
 
  printf("User is %s\n",getlogin());
 
  printf("User IDs: uid=%d, gid=%d \n", uid, gid);
 
  pw = getpwuid(uid);
  printf("UID passwd entry: \n name=%s, uid=%d, gid=%d, home=%s, shell=%s\n",pw->pw_name, pw->pw_uid, pw->pw_gid, pw->pw_dir, pw->pw_shell);
 
  pw = getpwnam("root");
  printf("root passwd entry: \n");
  printf("name=%s, uid=%d, gid=%d, home=%s, shell=%s \n",pw->pw_name, pw->pw_uid, pw->pw_gid, pw->pw_dir, pw->pw_shell);
  exit(0);
}
</div>

获取主机自身信息:

#include <sys/utsname.h>
#include <unistd.h>
#include <stdio.h>
 
 
int main(){
  char computer[256];
  struct utsname uts;
  if(gethostname(computer, 255) != 0 || uname(&uts) < 0){
    fprintf(stderr, "Could not get host information \n");
    exit(1);
  }
 
  printf("Computer host name is %s \n",computer);
  printf("System is %s on %s hardware \n",uts.sysname, uts.machine);
  printf("Nodename is %s \n",uts.nodename);
  printf("Version is %s , %s \n",uts.release, uts.version);
 
  exit(0);
}
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C语言编写获取Linux本地目录及本机信息的小程序实例

相关文章

  • 2017-05-28c语言多线程编程使用示例
  • 2017-05-28从汇编看c++中extern关键字的使用
  • 2017-05-28C++实现二叉树非递归遍历方法实例总结
  • 2017-05-28C++中的单例模式介绍
  • 2017-05-28浅谈do {...} while (0) 在宏定义中的作用
  • 2017-05-28C语言循环结构与时间函数用法实例教程
  • 2017-05-28C语言字符串操作总结大全(超详细)
  • 2017-05-28C++ string 字符串查找匹配实例代码
  • 2017-05-28C语言中const和C++中的const 区别详解
  • 2017-05-28C语言求矩阵的各列元素之和的代码示例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++ 异常处理 catch(...)介绍
    • C++ read函数读入int整形数据
    • C++利用stringstream进行数据类型转换实例
    • C语言中结构体(struct)的几种初始化方法
    • C++空类默认函数详细解析
    • C语言的isatty函数和ttyname函数以及sendmsg函数用法
    • 详解C语言 三大循环 四大跳转 和判断语句
    • 在C++程序中开启和禁用Windows设备的无线网卡的方法
    • VC实现对话框窗口任意分割
    • 基于大端法、小端法以及网络字节序的深入理解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有