⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsdport.c

📁 压缩包中包含LINUX下多个命令的源码
💻 C
字号:
#ifndef ORIGINAL_SOURCE#ifdef HAVE_CONFIG_H#include <config.h>#endif#include <sys/stat.h>#include <unistd.h>#include <pwd.h>#include <grp.h>#include <stdio.h>#include "bsdport.h"voidstrmode(mode_t mode, char *bp){	switch (mode&S_IFMT) {	case S_IFSOCK: bp[0]='s'; break;	case S_IFLNK: bp[0]='l'; break;	case S_IFREG: bp[0]='-'; break;	case S_IFBLK: bp[0]='b'; break;	case S_IFDIR: bp[0]='d'; break;	case S_IFCHR: bp[0]='c'; break;	case S_IFIFO: bp[0]='p'; break;	default: bp[0]='?'; break;	}	if (mode&S_IRUSR) bp[1]='r';	else bp[1]='-';	if (mode&S_IWUSR) bp[2]='w';	else bp[2]='-';	if (mode&S_IXUSR) {		if (mode&S_ISUID) bp[3]='s';		else bp[3]='x';	} else {		if (mode&S_ISUID) bp[3]='S';		else bp[3]='-';	}	if (mode&S_IRGRP) bp[4]='r';	else bp[4]='-';	if (mode&S_IWGRP) bp[5]='w';	else bp[5]='-';	if (mode&S_IXGRP) {		if (mode&S_ISGID) bp[6]='s';		else bp[6]='x';	} else {		if (mode&S_ISGID) bp[6]='S';		else bp[6]='-';	}	if (mode&S_IROTH) bp[7]='r';	else bp[7]='-';	if (mode&S_IWOTH) bp[8]='w';	else bp[8]='-';	if (mode&S_IXOTH) {		if (mode&S_ISVTX) bp[9]='t';		else bp[9]='x';	} else {		if (mode&S_ISVTX) bp[9]='T';		else bp[9]='-';	}	bp[10]=' ';	bp[11]=0;}char *user_from_uid(uid_t uid, int ignored){	struct passwd *pw;	static char buf[16];	pw = getpwuid(uid);	if ( pw )		return pw->pw_name;	else {		snprintf(buf, sizeof(buf), "%u", uid);		return buf;	}}char *group_from_gid(gid_t gid, int ignored){	struct group *gr;	static char buf[16];	gr = getgrgid(gid);	if ( gr )		return gr->gr_name;	else {		snprintf(buf, sizeof(buf), "%u", gid);		return buf;	}}#endif /* not ORIGINAL_SOURCE */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -