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

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

概述展示目录的小程序展示指定目录的小程序:#include<unistd.h>#include<stdio.h>

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

#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",entry->d_name);    }   }}int main(){  /*  show directory  */  printf("Directory scan of /home:\n");  printdir("/home",0);  printf("done. \n");     exit(0);}

根据参数输出目录的结构

#include <unistd.h>#include <stdio.h>#include <dirent.h>#include <string.h>#include <sys/stat.h>#include <stdlib.h> voID printdir(char *dir,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);}

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

#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,shell=%s \n",pw->pw_shell);  exit(0);}

获取主机自身信息:

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

总结

以上是内存溢出为你收集整理的C语言编写获取Linux本地目录及本机信息的小程序实例全部内容,希望文章能够帮你解决C语言编写获取Linux本地目录及本机信息的小程序实例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1247092.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存