コード例 #1
0
ファイル: stat_flags.c プロジェクト: LumaPictures/robotpkg
/*
 * flags_to_string --
 *	Convert stat flags to a comma-separated string.  If no flags
 *	are set, return the default string.
 */
char *
flags_to_string(u_long flags, const char *def)
{
	static char string[128];
	const char *prefix;

	string[0] = '\0';
	prefix = NULL;
#if HAVE_FILE_FLAGS
	if (flags & UF_APPEND)
		SAPPEND("uappnd");
	if (flags & UF_IMMUTABLE)
		SAPPEND("uchg");
	if (flags & UF_NODUMP)
		SAPPEND("nodump");
	if (flags & UF_OPAQUE)
		SAPPEND("opaque");
	if (flags & SF_APPEND)
		SAPPEND("sappnd");
	if (flags & SF_ARCHIVED)
		SAPPEND("arch");
	if (flags & SF_IMMUTABLE)
		SAPPEND("schg");
#ifdef SF_SNAPSHOT
	if (flags & SF_SNAPSHOT)
		SAPPEND("snap");
#endif
#endif
	if (prefix == NULL)
		strlcpy(string, def, sizeof(string));
	return (string);
}
コード例 #2
0
ファイル: stat_flags.c プロジェクト: kusumi/DragonFlyBSD
/*
 * flags_to_string --
 *	Convert stat flags to a comma-separated string.  If no flags
 *	are set, return the default string.
 */
char *
flags_to_string(u_long flags, const char *def)
{
	char string[128];
	const char *prefix;

	string[0] = '\0';
	prefix = NULL;
#if HAVE_STRUCT_STAT_ST_FLAGS
	if (flags & UF_APPEND)
		SAPPEND("uappnd");
	if (flags & UF_IMMUTABLE)
		SAPPEND("uchg");
	if (flags & UF_NODUMP)
		SAPPEND("nodump");
	if (flags & UF_OPAQUE)
		SAPPEND("opaque");
	if (flags & SF_APPEND)
		SAPPEND("sappnd");
	if (flags & SF_ARCHIVED)
		SAPPEND("arch");
	if (flags & SF_IMMUTABLE)
		SAPPEND("schg");
#ifdef SF_SNAPSHOT
	if (flags & SF_SNAPSHOT)
		SAPPEND("snap");
#endif
#endif
	if (prefix != NULL)
		return strdup(string);
	return strdup(def);
}