国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言編寫獲取Linux本地目錄及本機信息的小程序實例

2020-01-26 14:38:50
字體:
來源:轉載
供稿:網友

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

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

根據參數輸出目錄的結構

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

獲取主機基本信息
獲取主機用戶信息:

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

獲取主機自身信息:

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 中宁县| 咸丰县| 陵川县| 右玉县| 新野县| 浑源县| 新蔡县| 天祝| 张家界市| 天水市| 宁晋县| 太谷县| 乌审旗| 饶阳县| 雅安市| 乌兰浩特市| 昌都县| 阳朔县| 和龙市| 民勤县| 界首市| 湘乡市| 长宁县| 乌拉特中旗| 峨眉山市| 马公市| 西盟| 西和县| 健康| 龙井市| 陇西县| 永德县| 文登市| 梨树县| 板桥市| 农安县| 封丘县| 无为县| 武邑县| 西贡区| 化隆|