展示目录的小程序
展示指定目录的小程序:
根据参数输出目录的结构
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 #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)){ 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); } 获取主机基本信息
获取主机用户信息:
获取主机自身信息:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #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); }