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

这篇博客展示了使用C语言进行目录遍历和获取主机信息的代码示例。第一个程序遍历指定目录,并以缩进的形式显示子目录及其文件。第二个程序接收命令行参数,显示指定目录的结构。最后,程序获取并打印主机的用户和系统信息。
摘要由CSDN通过智能技术生成

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

#include

#include

#include

#include

#include

#include

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

#include

#include

#include

#include

#include

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

#include

#include

#include

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

#include

#include

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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值