展示目录的小程序
展示指定目录的小程序:
#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本地目录及本机信息的小程序实例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)