C语言编写获取Linux本地目录及本机信息的小程序实例
发布时间:2020-12-16 05:26:15 所属栏目:百科 来源:网络整理
导读:展示目录的小程序 展示指定目录的小程序: #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
展示目录的小程序 #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: %sn",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 %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,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); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |