您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ strmode函数代码示例

51自学网 2021-06-03 08:31:16
  C++
这篇教程C++ strmode函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中strmode函数的典型用法代码示例。如果您正苦于以下问题:C++ strmode函数的具体用法?C++ strmode怎么用?C++ strmode使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了strmode函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: ls_list

voidls_list(ARCHD *arcn, time_t now, FILE *fp){	struct stat *sbp;	char f_mode[MODELEN];	char f_date[DATELEN];	const char *timefrmt;	/*	 * if not verbose, just print the file name	 */	if (!vflag) {		(void)fprintf(fp, "%s/n", arcn->name);		(void)fflush(fp);		return;	}	if (d_first < 0)		d_first = 0;	/*	 * user wants long mode	 */	sbp = &(arcn->sb);#if 0	strmode(sbp->st_mode, f_mode);#else	strcpy(f_mode, "");#endif	/*	 * time format based on age compared to the time pax was started.	 */	if ((sbp->st_mtime + SIXMONTHS) <= now)		timefrmt = d_first ? OLDFRMTD : OLDFRMTM;	else		timefrmt = d_first ? CURFRMTD : CURFRMTM;	/*	 * print file mode, link count, uid, gid and time	 */#if 0	if (strftime(f_date,DATELEN,timefrmt,localtime(&(sbp->st_mtime))) == 0)#endif		f_date[0] = '/0';	(void)fprintf(fp, "%s%2u %-*s %-*s ", f_mode, sbp->st_nlink,		UT_NAMESIZE, name_uid(sbp->st_uid, 1), UT_GRPSIZE,		name_gid(sbp->st_gid, 1));	/*	 * print device id's for devices, or sizes for other nodes	 */	if ((arcn->type == PAX_CHR) || (arcn->type == PAX_BLK))#		ifdef NET2_STAT		(void)fprintf(fp, "%4u,%4u ", major(sbp->st_rdev),		    minor(sbp->st_rdev));#		else		(void)fprintf(fp, "%4lu,%4lu ", (unsigned long)major(sbp->st_rdev),		    (unsigned long)minor(sbp->st_rdev));#		endif	else {
开发者ID:BiancoZandbergen,项目名称:RTMINIX3,代码行数:60,


示例2: add_line_from_stat

static int add_line_from_stat(struct libscols_table *tb,			      struct libscols_line *parent,			      int parent_fd,			      struct stat *st,			      const char *name){	struct libscols_line *ln;	char modbuf[11], *p;	mode_t mode = st->st_mode;	int rc = 0;	ln = scols_table_new_line(tb, parent);	if (!ln)		err(EXIT_FAILURE, "failed to create output line");	/* MODE; local buffer, use scols_line_set_data() that calls strdup() */	strmode(mode, modbuf);	if (scols_line_set_data(ln, COL_MODE, modbuf))		goto fail;	/* SIZE; already allocated string, use scols_line_refer_data() */	p = size_to_human_string(0, st->st_size);	if (!p || scols_line_refer_data(ln, COL_SIZE, p))		goto fail;	/* NAME */	if (scols_line_set_data(ln, COL_NAME, name))		goto fail;	/* colors */	if (scols_table_colors_wanted(tb)) {		struct libscols_cell *ce = scols_line_get_cell(ln, COL_NAME);		if (S_ISDIR(mode))			scols_cell_set_color(ce, "blue");		else if (S_ISLNK(mode))			scols_cell_set_color(ce, "cyan");		else if (S_ISBLK(mode))			scols_cell_set_color(ce, "magenta");		else if ((mode & S_IXOTH) || (mode & S_IXGRP) || (mode & S_IXUSR))			scols_cell_set_color(ce, "green");	}	if (S_ISDIR(st->st_mode)) {		int fd;		if (parent_fd >= 0)			fd = openat(parent_fd, name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC);		else			fd = open(name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC);		if (fd >= 0) {			rc = add_children(tb, ln, fd);			close(fd);		}	}	return rc;fail:	err(EXIT_FAILURE, "failed to create cell data");	return -1;}
开发者ID:azat-archive,项目名称:util-linux,代码行数:60,


示例3: print_member_verbose

/* * ===  FUNCTION  ====================================================================== *         Name:  print_member_concise *  Description:  Prints a string representing the attributes of an archive *  member. * *  Name, inspiration, and string formatting ideas due to Dan Albert. * ===================================================================================== */static voidprint_member_verbose(int arch, struct ar_hdr *hdr, char **files, int count, int temp_fd){    char fname[SARFNAME+1];    get_hdr_attr(hdr, name_attr, fname, SARFNAME+1);    if(count > 0 && match_fnames(fname, files, count, strcmp) == -1)        return;    struct shadow_hdr shadow;    fill_shadow_hdr(hdr, &shadow);    char ftime[18];    struct tm *time = localtime(&shadow.ar_date);    strftime(ftime, 18, "%b %e %H:%M %Y", time);    char modestr[10];    modestr[9] = '/0';    strmode(shadow.ar_mode, modestr);    printf("%-9s %d/%-6d %5lld %s %s/n",        modestr,        shadow.ar_uid,        shadow.ar_gid,        (long long)shadow.ar_size,        ftime,        shadow.ar_name    );}
开发者ID:BaxterStockman,项目名称:OSU-CS,代码行数:38,


示例4: fmt_filemode

static const char *fmt_filemode(mode_t mode){        static char buffer[12];        strmode(mode, buffer);        return buffer;}
开发者ID:soxhc,项目名称:linux-ls,代码行数:7,


示例5: dashl_filler

static int dashl_filler(void *buf, const char *name, const struct stat *sb, off_t off){    char mode[16];    sprintf(lsbuf[lsi++], "%s %s %lld %lld/n",	   name, strmode(mode, sb->st_mode), sb->st_size, sb->st_blocks);    return 0;}
开发者ID:JinleiK,项目名称:Computer_Systems,代码行数:7,


示例6: main

int main(int argc, char * argv[], char * envp[]){    char * path = NULL;    int ch, fildes, count;    struct dirent dbuf[10];    argv0 = argv[0];    while ((ch = getopt(argc, argv, "la")) != EOF) {        switch (ch) {        case 'l':            flags.l = 1;            break;        case 'a':            flags.a = 1;            break;        case '?':        default:            usage();        }    }    argc -= optind;    argv += optind;    if (*argv)        path = *argv;    if (path == NULL || !strcmp(path, ""))        path = "./";    fildes = open(path, O_DIRECTORY | O_RDONLY | O_SEARCH);    if (fildes < 0) {        printf("Open failed/n");        return 1;    }    while ((count = getdents(fildes, (char *)dbuf, sizeof(dbuf))) > 0) {        for (int i = 0; i < count; i++) {            if (!flags.a && dbuf[i].d_name[0] == '.')                continue;            if (flags.l) {                struct stat stat;                char mode[12];                fstatat(fildes, dbuf[i].d_name, &stat, 0);                strmode(stat.st_mode, mode);                printf("% 7u %s %u:%u %s/n",                         (unsigned)dbuf[i].d_ino, mode,                         (unsigned)stat.st_uid, (unsigned)stat.st_gid,                         dbuf[i].d_name);            } else {                printf("%s ", dbuf[i].d_name);            }        }    }    printf("/n");    close(fildes);    return 0;}
开发者ID:htchiang,项目名称:zeke,代码行数:60,


示例7: check

static intcheck(char *path, char *name, struct stat *sp){	int ch, first;	char modep[15];	/*	 * If it's not a symbolic link and it's unwritable and we're	 * talking to a terminal, ask.  Symbolic links are excluded	 * because their permissions are meaningless.  Check stdin_ok	 * first because we may not have stat'ed the file.	 */	if (!stdin_ok || S_ISLNK(sp->st_mode) || !access(name, W_OK) ||	    errno != EACCES)		return (1);	strmode(sp->st_mode, modep);	(void)fprintf(stderr, "override %s%s%s/%s for %s? ",	    modep + 1, modep[9] == ' ' ? "" : " ",	    user_from_uid(sp->st_uid, 0),	    group_from_gid(sp->st_gid, 0), path);	(void)fflush(stderr);	first = ch = getchar();	while (ch != '/n' && ch != EOF)		ch = getchar();	return (first == 'y' || first == 'Y');}
开发者ID:Open343,项目名称:bitrig,代码行数:27,


示例8: printlong

voidprintlong(char *name,			/* filename to print */	char *accpath,			/* current valid path to filename */	struct stat *sb)		/* stat buffer */{	char modep[15];	(void)printf("%7lu %6lld ", (u_long)sb->st_ino,	    (long long)sb->st_blocks);	(void)strmode(sb->st_mode, modep);	(void)printf("%s %3lu %-*s %-*s ", modep, (unsigned long)sb->st_nlink,	    LOGIN_NAME_MAX, user_from_uid(sb->st_uid, 0), LOGIN_NAME_MAX,	    group_from_gid(sb->st_gid, 0));	if (S_ISCHR(sb->st_mode) || S_ISBLK(sb->st_mode))		(void)printf("%3llu,%5llu ",		    (unsigned long long)major(sb->st_rdev),		    (unsigned long long)minor(sb->st_rdev));	else		(void)printf("%9lld ", (long long)sb->st_size);	printtime(sb->st_mtime);	(void)printf("%s", name);	if (S_ISLNK(sb->st_mode))		printlink(accpath);	(void)putchar('/n');}
开发者ID:Stichting-MINIX-Research-Foundation,项目名称:minix,代码行数:26,


示例9: print_namei

static intprint_namei(struct namei *nm, char *path){	int i;	if (path)		printf("f: %s/n", path);	for (; nm; nm = nm->next) {		char md[11];		if (nm->noent) {			int blanks = 1;			if (flags & NAMEI_MODES)				blanks += 9;			if (flags & NAMEI_OWNERS)				blanks += uwidth + gwidth + 2;			if (!(flags & NAMEI_VERTICAL))				blanks += 1;			blanks += nm->level * 2;			printf("%*s ", blanks, "");			printf(_("%s - No such file or directory/n"), nm->name);			return -1;		}		strmode(nm->st.st_mode, md);		if (nm->mountpoint)			md[0] = 'D';		if (!(flags & NAMEI_VERTICAL)) {			for (i = 0; i < nm->level; i++)				fputs("  ", stdout);			fputc(' ', stdout);		}		if (flags & NAMEI_MODES)			printf("%s", md);		else			printf("%c", md[0]);		if (flags & NAMEI_OWNERS) {			printf(" %-*s", uwidth,				get_id(ucache, nm->st.st_uid)->name);			printf(" %-*s", gwidth,				get_id(gcache, nm->st.st_gid)->name);		}		if (flags & NAMEI_VERTICAL)			for (i = 0; i < nm->level; i++)				fputs("  ", stdout);		if (S_ISLNK(nm->st.st_mode))			printf(" %s -> %s/n", nm->name,					nm->abslink + nm->relstart);		else			printf(" %s/n", nm->name);	}	return 0;}
开发者ID:gg0,项目名称:util-linux,代码行数:60,


示例10: printmodestr

static voidprintmodestr(FTSENT *p){    char buf[MODE_BUFSZ];    mode_t m=p->fts_statp->st_mode;    strmode(m, buf);    printf("%s ", buf);}
开发者ID:Kaikaiw,项目名称:apue,代码行数:8,


示例11: print_long

voidprint_long(OBJ *obj){	struct stat *st;	FTSENT      *p;	char        mode[MODE_BUFF_SIZE];	p = obj->obj_list;	if(!obj->obj_isroot)		print_total(obj->obj_size_total);	while (p != NULL) {		if (p->fts_number == FTS_NO_PRINT) {			p = p->fts_link;			continue;		}		st = p->fts_statp;		/* print inode */		if (f_ino)			printf("%*"PRIuMAX" ", obj->obj_ino_max,				(uintmax_t)st->st_ino);		/* print number of blocks */		if (f_block) {				print_block((int64_t)st->st_blocks * DEFAULT_BSIZE, 				    obj->obj_block_max);		}				/* print mode */		strmode(st->st_mode, mode);		printf("%11s ", mode);		/* print number of links */		printf("%*"PRIuMAX" ", obj->obj_link_max, 			(uintmax_t)st->st_nlink);		/* print owner and group */		print_user_and_group(st->st_uid, st->st_gid, 				      obj->obj_user_max, obj->obj_group_max);		/* print size */		if (S_ISCHR(st->st_mode) || S_ISBLK(st->st_mode))			print_device(st->st_rdev, obj->obj_major_max,					obj->obj_minor_max);		else			print_size(st->st_size, obj->obj_size_max);		print_date(st);		print_name(p, WITH_LINK);		putchar('/n');		p = p->fts_link;	}}
开发者ID:chenggongtc,项目名称:myls,代码行数:58,


示例12: print_modestr

/* * ===  FUNCTION  ====================================================================== *         Name:  print_modestr *  Description:  Calls strmode to print the 9-character permission string. * ===================================================================================== */static inline voidprint_modestr(mode_t mode){    char modestr[10];    modestr[9] = '/0';    strmode(mode, modestr);    printf("mode: %s/n", modestr);}
开发者ID:BaxterStockman,项目名称:OSU-CS,代码行数:15,


示例13: fxp_local_do_ls

void fxp_local_do_ls( QString args , QVector<QMap<char, QString> > & fileinfos){    int sz;    QMap<char,QString> thefile;    char file_size[32];    char file_date[64];    char file_type[32];    char fname[PATH_MAX+1] = {0};    //char the_path[PATH_MAX+1];    QString the_path ;        struct tm *ltime;    struct stat thestat ;            DIR * dh = opendir( GlobalOption::instance()->locale_codec->fromUnicode(args) ) ;    struct dirent * entry = NULL ;    fileinfos.clear();        while ((entry = readdir(dh)) != NULL) {        thefile.clear();        memset(&thestat, 0, sizeof(thestat));        //strcpy(the_path,args);        //strcat(the_path,"/");        //strcat(the_path,entry->d_name);        the_path = args + "/"  + GlobalOption::instance()->locale_codec->toUnicode(entry->d_name);        if (strcmp(entry->d_name, ".") == 0) goto out_point;        if (strcmp(entry->d_name, "..") == 0) goto out_point;        if (stat(GlobalOption::instance()->locale_codec->fromUnicode(the_path), &thestat) != 0) continue;        ltime = localtime(&thestat.st_mtime);                sprintf(file_size,"%llu", (long long)thestat.st_size);        strmode(thestat.st_mode, file_type);        if (ltime != NULL) {            if (time(NULL) - thestat.st_mtime < (365*24*60*60)/2)                sz = strftime(file_date, sizeof file_date, "%Y/%m/%d %H:%M:%S", ltime);            else                sz = strftime(file_date, sizeof file_date, "%Y/%m/%d %H:%M:%S", ltime);            if (sz == 0) {            }        }         strcpy(fname, entry->d_name);        thefile.insert( 'N', GlobalOption::instance()->locale_codec->toUnicode(fname) );        thefile.insert( 'T', QString(file_type) );        thefile.insert( 'S', QString(file_size ) );        thefile.insert( 'D', QString( file_date ) );                fileinfos.push_back(thefile);            out_point: continue ;    }    closedir(dh);}
开发者ID:caidongyun,项目名称:nullfxp,代码行数:53,


示例14: filemodestring

voidfilemodestring (struct stat const *statp, char *str){    strmode (statp->st_mode, str);    if (S_TYPEISSEM (statp))        str[0] = 'F';    else if (S_TYPEISMQ (statp))        str[0] = 'Q';    else if (S_TYPEISSHM (statp))        str[0] = 'S';}
开发者ID:nixpanic,项目名称:glusterfs-coreutils,代码行数:12,


示例15: printlong

voidprintlong(DISPLAY *dp){	struct stat *sp;	FTSENT *p;	NAMES *np;	char buf[20];	if (dp->list->fts_level != FTS_ROOTLEVEL && (f_longform || f_size))		(void)printf("total %llu/n", howmany(dp->btotal, blocksize));	for (p = dp->list; p; p = p->fts_link) {		if (IS_NOPRINT(p))			continue;		sp = p->fts_statp;		if (f_inode)			(void)printf("%*llu ", dp->s_inode,			    (unsigned long long)sp->st_ino);		if (f_size)			(void)printf("%*lld ", dp->s_block,			    howmany((long long)sp->st_blocks, blocksize));		(void)strmode(sp->st_mode, buf);		np = p->fts_pointer;		(void)printf("%s %*u ", buf, dp->s_nlink, sp->st_nlink);		if (!f_grouponly)			(void)printf("%-*s  ", dp->s_user, np->user);		(void)printf("%-*s  ", dp->s_group, np->group);		if (f_flags)			(void)printf("%-*s ", dp->s_flags, np->flags);		if (S_ISCHR(sp->st_mode) || S_ISBLK(sp->st_mode))			(void)printf("%3d, %3d ",			    major(sp->st_rdev), minor(sp->st_rdev));		else if (dp->bcfile)			(void)printf("%*s%*lld ",			    8 - dp->s_size, "", dp->s_size,			    (long long)sp->st_size);		else			printsize(dp->s_size, sp->st_size);		if (f_accesstime)			printtime(sp->st_atime);		else if (f_statustime)			printtime(sp->st_ctime);		else			printtime(sp->st_mtime);		(void)mbsprint(p->fts_name, 1);		if (f_type || (f_typedir && S_ISDIR(sp->st_mode)))			(void)printtype(sp->st_mode);		if (S_ISLNK(sp->st_mode))			printlink(p);		(void)putchar('/n');	}}
开发者ID:a565109863,项目名称:src,代码行数:52,


示例16: check

check(char *path, char *name, struct stat *sp)#endif{	int ch, first;#ifdef __GNO__       static#endif	char modep[15], flagsp[128];	/* Check -i first. */	if (iflag)		(void)fprintf(stderr, "remove %s? ", path);	else {		/*		 * If it's not a symbolic link and it's unwritable and we're		 * talking to a terminal, ask.  Symbolic links are excluded		 * because their permissions are meaningless.  Check stdin_ok		 * first because we may not have stat'ed the file.		 */#ifndef __GNO__		if (!stdin_ok || S_ISLNK(sp->st_mode) ||		    !access(name, W_OK) &&		    !(sp->st_flags & (SF_APPEND|SF_IMMUTABLE)) &&		    (!(sp->st_flags & (UF_APPEND|UF_IMMUTABLE)) || !uid))			return (1);		strmode(sp->st_mode, modep);		strcpy(flagsp, flags_to_string(sp->st_flags, NULL));		if (*flagsp)			strcat(flagsp, " ");		(void)fprintf(stderr, "override %s%s%s/%s %sfor %s? ",		    modep + 1, modep[9] == ' ' ? "" : " ",		    user_from_uid(sp->st_uid, 0),		    group_from_gid(sp->st_gid, 0),		    *flagsp ? flagsp : "",		    path);#else		if (!stdin_ok || !access(name,W_OK))			return (1);		(void)fprintf(stderr, "override protection for %s? ",		    path);#endif	}	(void)fflush(stderr);	first = ch = getchar();	while (ch != '/n' && ch != EOF)		ch = getchar();	return (first == 'y' || first == 'Y');}
开发者ID:GnoConsortium,项目名称:gno,代码行数:49,


示例17: prepareBuf

int prepareBuf(char **pCache, FTSENT* pChild, Length len) {		char pEntryBuf[NAME_MAX + 1];	char *pTemp = NULL;	struct stat *pStat = {0};	char pMode[12];	bzero(pEntryBuf, NAME_MAX + 1); 	pStat = pChild->fts_statp;	bzero(pMode, 12);	if(flg_display != in_C && flg_display != in_x)		return 0;		if(!flg_dot && pChild->fts_name[0] == '.')		return 1;		pCache[pCacheCount] = (char*) calloc(len.column + 1, sizeof(char *));		strmode(pStat->st_mode, pMode);	// inode 	if(flg_i) {		(void) snprintf(pEntryBuf, sizeof(pEntryBuf), 				"%*lu ",len.l_ino,pStat->st_ino);		(void) strcat(pCache[pCacheCount], pEntryBuf);	}	// block	if(flg_s) {		pTemp = resetBlock(pStat->st_blocks);		(void) snprintf(pEntryBuf, sizeof(pEntryBuf),				"%*s ", len.l_blocks, pTemp);		(void) strcat(pCache[pCacheCount], pEntryBuf);		free(pTemp);	}	// name	pTemp = displayName(pChild->fts_accpath);	(void) snprintf(pEntryBuf, sizeof(pEntryBuf), 				"%-*s",len.l_name, pTemp);	(void) strcat(pCache[pCacheCount], pEntryBuf);	free(pTemp);	// -F	if(flg_F) {		(void) snprintf(pEntryBuf, sizeof(pEntryBuf),				"%c ", displayChar(pMode));		(void) strcat(pCache[pCacheCount], pEntryBuf);	}//	printf("pre: %s/n", pCache[pCacheCount]);	pCacheCount++;	return (1);}
开发者ID:Maisi-Li,项目名称:apue,代码行数:49,


示例18: ls_file

/* * drwxr-xr-x    5 markus   markus       1024 Jan 13 18:39 .ssh */char *ls_file(const char *name, const struct stat *st, int remote, int si_units){	int ulen, glen, sz = 0;	struct tm *ltime = localtime(&st->st_mtime);	char *user, *group;	char buf[1024], mode[11+1], tbuf[12+1], ubuf[11+1], gbuf[11+1];	char sbuf[FMT_SCALED_STRSIZE];	time_t now;	strmode(st->st_mode, mode);	if (!remote) {		user = user_from_uid(st->st_uid, 0);	} else {		snprintf(ubuf, sizeof ubuf, "%u", (u_int)st->st_uid);		user = ubuf;	}	if (!remote) {		group = group_from_gid(st->st_gid, 0);	} else {		snprintf(gbuf, sizeof gbuf, "%u", (u_int)st->st_gid);		group = gbuf;	}	if (ltime != NULL) {		now = time(NULL);		if (now - (365*24*60*60)/2 < st->st_mtime &&		    now >= st->st_mtime)			sz = strftime(tbuf, sizeof tbuf, "%b %e %H:%M", ltime);		else			sz = strftime(tbuf, sizeof tbuf, "%b %e  %Y", ltime);	}	if (sz == 0)		tbuf[0] = '/0';	ulen = MAX(strlen(user), 8);	glen = MAX(strlen(group), 8);	if (si_units) {		fmt_scaled((long long)st->st_size, sbuf);		snprintf(buf, sizeof buf, "%s %3u %-*s %-*s %8s %s %s", mode,		    (u_int)st->st_nlink, ulen, user, glen, group,		    sbuf, tbuf, name);	} else {		snprintf(buf, sizeof buf, "%s %3u %-*s %-*s %8llu %s %s", mode,		    (u_int)st->st_nlink, ulen, user, glen, group,		    (unsigned long long)st->st_size, tbuf, name);	}	return xstrdup(buf);}
开发者ID:gvsurenderreddy,项目名称:qvd-sftp-server,代码行数:51,


示例19: filemodestring

voidfilemodestring (struct stat const *statp, char *str){  strmode (statp->st_mode, str);  if (S_TYPEISSEM (statp))    str[0] = 'F';  else if (IS_MIGRATED_FILE (statp))    str[0] = 'M';  else if (S_TYPEISMQ (statp))    str[0] = 'Q';  else if (S_TYPEISSHM (statp))    str[0] = 'S';  else if (S_TYPEISTMO (statp))    str[0] = 'T';}
开发者ID:7696122,项目名称:emacs,代码行数:16,


示例20: mentries_dump

/* Dumps given metadata */voidmentries_dump(struct metahash *mhash){    const struct metaentry *mentry;    char mode[11 + 1] = "";    char date[12 + 2 + 2 + 2*1 + 1 + 2 + 2 + 2 + 2*1 + 1] = "";    char zone[5 + 1] = "";    struct tm cal;    for (int key = 0; key < HASH_INDEXES; key++) {        for (mentry = mhash->bucket[key]; mentry; mentry = mentry->next) {            strmode(mentry->mode, mode);            localtime_r(&mentry->mtime, &cal);            strftime(date, sizeof(date), "%F %T", &cal);            strftime(zone, sizeof(zone), "%z", &cal);            printf("%s/t%s/t%s/t%s.%09ld %s/t%s%s/n",                   mode,                   mentry->owner, mentry->group,                   date, mentry->mtimensec, zone,                   mentry->path, S_ISDIR(mentry->mode) ? "/" : "");            for (int i = 0; i < mentry->xattrs; i++) {                printf("/t/t/t/t%s%s/t%s=",                       mentry->path, S_ISDIR(mentry->mode) ? "/" : "",                       mentry->xattr_names[i]);                ssize_t p = 0;                for (; p < mentry->xattr_lvalues[i]; p++) {                    const char ch = mentry->xattr_values[i][p];                    if ((unsigned)(ch - 32) > 126 - 32) {                        p = -1;                        break;                    }                }                if (p >= 0)                    printf("/"%.*s/"/n",                           (int)mentry->xattr_lvalues[i],                           mentry->xattr_values[i]);                else {                    printf("0x");                    for (p = 0; p < mentry->xattr_lvalues[i]; p++)                        printf("%02hhx", (char)mentry->xattr_values[i][p]);                    printf("/n");                }            }        }    }}
开发者ID:Alphix,项目名称:metastore,代码行数:47,


示例21: print_namei

static voidprint_namei(struct namei *nm, char *path){	struct namei *prev = NULL;	int i;	if (path)		printf("f: %s/n", path);	for (; nm; prev = nm, nm = nm->next) {		char md[11];		strmode(nm->st.st_mode, md);		if (nm->mountpoint)			md[0] = 'D';		if (!(flags & NAMEI_VERTICAL)) {			for (i = 0; i < nm->level; i++)				fputs("  ", stdout);			fputc(' ', stdout);		}		if (flags & NAMEI_MODES)			printf("%s", md);		else			printf("%c", md[0]);		if (flags & NAMEI_OWNERS) {			printf(" %-*s", uwidth,				get_id(ucache, nm->st.st_uid)->name);			printf(" %-*s", gwidth,				get_id(gcache, nm->st.st_gid)->name);		}		if (flags & NAMEI_VERTICAL)			for (i = 0; i < nm->level; i++)				fputs("  ", stdout);		if (S_ISLNK(nm->st.st_mode))			printf(" %s -> %s/n", nm->name,					nm->abslink + nm->relstart);		else			printf(" %s/n", nm->name);	}}
开发者ID:AtariTeenageRiot,项目名称:LUKS,代码行数:46,


示例22: check

static intcheck(const char *path, const char *name, struct stat *sp){    int ch, first;    char modep[15], *flagsp;    /* Check -i first. */    if (iflag)        (void)fprintf(stderr, "remove %s? ", path);    else {        /*         * If it's not a symbolic link and it's unwritable and we're         * talking to a terminal, ask.  Symbolic links are excluded         * because their permissions are meaningless.  Check stdin_ok         * first because we may not have stat'ed the file.         */        if (!stdin_ok || S_ISLNK(sp->st_mode) ||                (!access(name, W_OK) &&                 !(sp->st_flags & (SF_APPEND|SF_IMMUTABLE)) &&                 (!(sp->st_flags & (UF_APPEND|UF_IMMUTABLE)) || !uid)))            return (1);        strmode(sp->st_mode, modep);        if ((flagsp = fflagstostr(sp->st_flags)) == NULL)            err(1, "fflagstostr");        if (Pflag)            errx(1,                 "%s: -P was specified, but file is not writable",                 path);        (void)fprintf(stderr, "override %s%s%s/%s %s%sfor %s? ",                      modep + 1, modep[9] == ' ' ? "" : " ",                      user_from_uid(sp->st_uid, 0),                      group_from_gid(sp->st_gid, 0),                      *flagsp ? flagsp : "", *flagsp ? " " : "",                      path);        free(flagsp);    }    (void)fflush(stderr);    first = ch = getchar();    while (ch != '/n' && ch != EOF)        ch = getchar();    return (first == 'y' || first == 'Y');}
开发者ID:hmatyschok,项目名称:MeshBSD,代码行数:43,


示例23: ssl_load_file

char *ssl_load_file(const char *name, off_t *len, mode_t perm){	struct stat	 st;	off_t		 size;	char		*buf = NULL;	int		 fd, saved_errno;	char		 mode[12];	if ((fd = open(name, O_RDONLY)) == -1)		return (NULL);	if (fstat(fd, &st) != 0)		goto fail;	if (st.st_uid != 0) {		log_warnx("warn:  %s: not owned by uid 0", name);		errno = EACCES;		goto fail;	}	if (st.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO) & ~perm) {		strmode(perm, mode);		log_warnx("warn:  %s: insecure permissions: must be at most %s",		    name, &mode[1]);		errno = EACCES;		goto fail;	}	size = st.st_size;	if ((buf = calloc(1, size + 1)) == NULL)		goto fail;	if (read(fd, buf, size) != size)		goto fail;	close(fd);	*len = size + 1;	return (buf);fail:	if (buf != NULL)		free(buf);	saved_errno = errno;	close(fd);	errno = saved_errno;	return (NULL);}
开发者ID:lucasad,项目名称:OpenSMTPD,代码行数:43,


示例24: printlong

voidprintlong(char *name, char *accpath, struct stat *sb){	char modep[15];	(void)printf("%6lu %8"PRId64" ", (u_long) sb->st_ino, sb->st_blocks);	(void)strmode(sb->st_mode, modep);	(void)printf("%s %3u %-*s %-*s ", modep, sb->st_nlink, MAXLOGNAME - 1,	    user_from_uid(sb->st_uid, 0), MAXLOGNAME - 1,	    group_from_gid(sb->st_gid, 0));	if (S_ISCHR(sb->st_mode) || S_ISBLK(sb->st_mode))		(void)printf("%#8jx ", (uintmax_t)sb->st_rdev);	else		(void)printf("%8"PRId64" ", sb->st_size);	printtime(sb->st_mtime);	(void)printf("%s", name);	if (S_ISLNK(sb->st_mode))		printlink(accpath);	(void)putchar('/n');}
开发者ID:AhmadTux,项目名称:freebsd,代码行数:21,


示例25: printlong

voidprintlong(char *name, char *accpath, struct stat *sb){	char modep[15];	(void)printf("%6u %4lld ", sb->st_ino, (long long)sb->st_blocks);	(void)strmode(sb->st_mode, modep);	(void)printf("%s %3u %-*.*s %-*.*s ", modep, sb->st_nlink, 	    NAME_WIDTH, UT_NAMESIZE, user_from_uid(sb->st_uid, 0), 	    NAME_WIDTH, UT_NAMESIZE, group_from_gid(sb->st_gid, 0));	if (S_ISCHR(sb->st_mode) || S_ISBLK(sb->st_mode))		(void)printf("%3d, %3d ", major(sb->st_rdev),		    minor(sb->st_rdev));	else		(void)printf("%8lld ", (long long)sb->st_size);	printtime(sb->st_mtime);	(void)printf("%s", name);	if (S_ISLNK(sb->st_mode))		printlink(accpath);	(void)putchar('/n');}
开发者ID:UNGLinux,项目名称:Obase,代码行数:22,


示例26: print_stat

void print_stat( const compiled_stats_t const * stats ){   if( !stats )      return;   struct passwd* user_info = getpwuid( stats->uid );   struct group* group_info = getgrgid( stats->gid );   printf( "   Relative Name ...... %s", stats->name );            // add '/' if it is a dir   if( S_ISDIR( stats->mode ) )      printf( "//n" );   else      printf( "/n" );   printf( "   Inode Number ....... %ld/n", stats->inode );      // add (self) if gid or uid is the currently       // running user/group   if( stats->uid == getuid() )      printf( "   Owner .............. %s (self)/n", user_info->pw_name );   else      printf( "   Owner .............. %s/n", user_info->pw_name );   if( stats->gid == getgid() )      printf( "   Group .............. %s (self)/n", group_info->gr_name );   else      printf( "   Group .............. %s/n", group_info->gr_name );   printf( "   File Size (bytes) .. %ld/n", stats->size );   printf( "   Last Modified ...... %s", ctime( &(stats->mtime) ) );      char perm[12];   strmode( stats->mode, perm );   printf( "   Access Rights ...... %s/n", perm );   printf( "/n" );}
开发者ID:clcto,项目名称:cs620-A2,代码行数:38,


示例27: ls_file

/* * drwxr-xr-x    5 markus   markus       1024 Jan 13 18:39 .ssh */static char *ls_file(char *name, struct stat *st){	int ulen, glen, sz = 0;	struct passwd *pw;	struct group *gr;	struct tm *ltime = localtime(&st->st_mtime);	char *user, *group;	char buf[1024], mode[11+1], tbuf[12+1], ubuf[11+1], gbuf[11+1];	strmode(st->st_mode, mode);	if ((pw = getpwuid(st->st_uid)) != NULL) {		user = pw->pw_name;	} else {		snprintf(ubuf, sizeof ubuf, "%u", (u_int)st->st_uid);		user = ubuf;	}	if ((gr = getgrgid(st->st_gid)) != NULL) {		group = gr->gr_name;	} else {		snprintf(gbuf, sizeof gbuf, "%u", (u_int)st->st_gid);		group = gbuf;	}	if (ltime != NULL) {		if (time(NULL) - st->st_mtime < (365*24*60*60)/2)			sz = strftime(tbuf, sizeof tbuf, "%b %e %H:%M", ltime);		else			sz = strftime(tbuf, sizeof tbuf, "%b %e  %Y", ltime);	}	if (sz == 0)		tbuf[0] = '/0';	ulen = MAX(strlen(user), 8);	glen = MAX(strlen(group), 8);	snprintf(buf, sizeof buf, "%s %3d %-*s %-*s %8llu %s %s", mode,	    st->st_nlink, ulen, user, glen, group,	    (u_int64_t)st->st_size, tbuf, name);	return xstrdup(buf);}
开发者ID:chromium-googlesource-mirror,项目名称:sctp-refimpl,代码行数:41,


示例28: check

static intcheck(char *path, char *name, struct stat *sp){	int ch, first;	char modep[15];	/* Check -i first. */	if (iflag)		(void)fprintf(stderr, "remove '%s'? ", path);	else {		/*		 * If it's not a symbolic link and it's unwritable and we're		 * talking to a terminal, ask.  Symbolic links are excluded		 * because their permissions are meaningless.  Check stdin_ok		 * first because we may not have stat'ed the file.		 */		if (!stdin_ok || S_ISLNK(sp->st_mode) ||		    !(access(name, W_OK) && (errno != ETXTBSY)))			return (1);		strmode(sp->st_mode, modep);		if (Pflag) {			warnx(			    "%s: -P was specified but file could not"			    " be overwritten", path);			return 0;		}		(void)fprintf(stderr, "override %s%s%s:%s for '%s'? ",		    modep + 1, modep[9] == ' ' ? "" : " ",		    user_from_uid(sp->st_uid, 0),		    group_from_gid(sp->st_gid, 0), path);	}	(void)fflush(stderr);	first = ch = getchar();	while (ch != '/n' && ch != EOF)		ch = getchar();	return (first == 'y' || first == 'Y');}
开发者ID:0111abhi,项目名称:platform_system_core,代码行数:38,


示例29: checkdir

/* checkdir - check all components of a path for root access. If * st_dev!=0 then it's a local file system, and root always has * access; if it's 0 then it's NFS, so check access for 'other * users'.  */int checkdir(const char *path){#ifndef __APPLE__        struct stat root, sb;    int fd, tmp, mask = S_IXOTH;    char name[1024], mode[32];    stat("/", &root);		/* can't fail */    fd = open(path, O_RDONLY);    if (fd < 0 || fstat(fd, &sb) < 0) {	fprintf(stderr, "can't read %s: %s/n", path, strerror(errno));	return 0;    }    while (!(sb.st_dev == root.st_dev && sb.st_ino == root.st_ino)) {	if (major(sb.st_dev) == 0 && !(sb.st_mode & mask)) {	    strmode(mode, sb.st_mode);	    printf("NFS permissions error on '%s' : /n/t%s/n",		   fd2path(fd, name, sizeof(name)), mode);	    close(fd);	    return 0;	}	tmp = fd;	if ((fd = openat(tmp, "..", O_RDONLY)) < 0 || 	    (fstat(fd, &sb) < 0)) {	    fprintf(stderr, "error reading %s/..: %s/n",		    fd2path(tmp, name, sizeof(name)), strerror(errno));	    close(tmp);	    return 0;	}	close(tmp);    }    close(fd);#endif    return 1;}
开发者ID:JinleiK,项目名称:Computer_Systems,代码行数:41,


示例30: ktrstat

static voidktrstat(const struct stat *statp){	char mode[12];	struct passwd *pwd;	struct group  *grp;	/*	 * note: ktrstruct() has already verified that statp points to a	 * buffer exactly sizeof(struct stat) bytes long.	 */	printf("struct stat { ");	strmode(statp->st_mode, mode);	printf("dev=%d, ino=%llu, mode=%s, nlink=%u, ",	    statp->st_dev, (unsigned long long)statp->st_ino,	    mode, statp->st_nlink);	if (resolv == 0 || (pwd = getpwuid(statp->st_uid)) == NULL)		printf("uid=%u, ", statp->st_uid);	else		printf("uid=/"%s/", ", pwd->pw_name);	if (resolv == 0 || (grp = getgrgid(statp->st_gid)) == NULL)		printf("gid=%u, ", statp->st_gid);	else		printf("gid=/"%s/", ", grp->gr_name);	printf("rdev=%d, ", statp->st_rdev);	printf("atime=");	print_timespec(&statp->st_atim, 0);	printf(", mtime=");	print_timespec(&statp->st_mtim, 0);	printf(", ctime=");	print_timespec(&statp->st_ctim, 0);	printf(", size=%lld, blocks=%lld, blksize=%u, flags=0x%x, gen=0x%x",	    statp->st_size, statp->st_blocks, statp->st_blksize,	    statp->st_flags, statp->st_gen);	printf(" }/n");}
开发者ID:SylvestreG,项目名称:bitrig,代码行数:36,



注:本文中的strmode函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ strn0cpy函数代码示例
C++ strmhz函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。