栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

#include 
#include 
#include 
#include 
#include 
#include 
 
void printdir(char *dir,int depth){
  DIR *dp;
  struct dirent *entry;
  struct stat statbuf;
 
  if((dp = opendir(dir)) == NULL){
    fprintf(stderr, "cannot open directory: %sn", dir);
    return;
  }
 
  chdir(dir);
  while((entry = readdir(dp)) != NULL){
    lstat(entry->d_name,&statbuf);
    if(S_ISDIR(statbuf.st_mode)){
      
      if(strcmp(".",entry->d_name) == 0 || strcmp("..",entry->d_name) == 0){
 continue;
      }
      printf("%*s%s/ n",depth,"",entry->d_name);
      
      printdir(entry->d_name,depth+4);
    }else{
      printf("%*s%s n",depth,"",entry->d_name);
    }
 
  }
}
int main(){
  
  printf("Directory scan of /home:n");
  printdir("/home",0);
  printf("done. n");
   
  exit(0);
}

根据参数输出目录的结构

#include 
#include 
#include 
#include 
#include 
#include 
 
void printdir(char *dir,int depth){
  DIR *dp;
  struct dirent *entry;
  struct stat statbuf;
 
  if((dp = opendir(dir)) == NULL){
    fprintf(stderr, "cannot open directory: %sn", dir);
    return;
  }
 
  chdir(dir);
  while((entry = readdir(dp)) != NULL){
    lstat(entry->d_name,&statbuf);
    if(S_ISDIR(statbuf.st_mode)){
      
      if(strcmp(".",entry->d_name) == 0 || strcmp("..",entry->d_name) == 0){
 continue;
      }
      printf("%*s%s/ n",depth,"",entry->d_name);
      
      printdir(entry->d_name,depth+4);
    }else{
      printf("%*s%s n",depth,"",entry->d_name);
    }
 
  }
}
int main(int argc, char* argv[]){
  
  char *topdir = ".";
  if(argc >= 2){
    topdir = argv[1];
  }
  printf("Directory scan of %s:n",topdir);
  printdir(topdir,0);
  printf("done. n");
   
  exit(0);
}

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

#include 
#include 
#include 
#include 
 
int main(){
  uid_t uid;
  gid_t gid;
 
  struct passwd *pw;
  uid = getuid();
  gid = getgid();
 
  printf("User is %sn",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=%sn",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);
}

获取主机自身信息:

#include 
#include 
#include 
 
 
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);
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/64472.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号