本文整理汇总了C++中dname函数的典型用法代码示例。如果您正苦于以下问题:C++ dname函数的具体用法?C++ dname怎么用?C++ dname使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了dname函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: zpl_symlink
static int
zpl_symlink(struct inode *dir, struct dentry *dentry, const char *name)
{
cred_t *cr = CRED();
vattr_t *vap;
struct inode *ip;
int error;
fstrans_cookie_t cookie;
crhold(cr);
vap = kmem_zalloc(sizeof (vattr_t), KM_SLEEP);
zpl_vap_init(vap, dir, S_IFLNK | S_IRWXUGO, cr);
cookie = spl_fstrans_mark();
error = -zfs_symlink(dir, dname(dentry), vap, (char *)name, &ip, cr, 0);
if (error == 0) {
d_instantiate(dentry, ip);
error = zpl_xattr_security_init(ip, dir, &dentry->d_name);
if (error)
(void) zfs_remove(dir, dname(dentry), cr, 0);
}
spl_fstrans_unmark(cookie);
kmem_free(vap, sizeof (vattr_t));
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:MarkGavalda,项目名称:zfs,代码行数:30,代码来源:zpl_inode.c
示例2: zpl_mkdir
static int
zpl_mkdir(struct inode *dir, struct dentry *dentry, zpl_umode_t mode)
{
cred_t *cr = CRED();
vattr_t *vap;
struct inode *ip;
int error;
fstrans_cookie_t cookie;
crhold(cr);
vap = kmem_zalloc(sizeof (vattr_t), KM_SLEEP);
zpl_vap_init(vap, dir, mode | S_IFDIR, cr);
cookie = spl_fstrans_mark();
error = -zfs_mkdir(dir, dname(dentry), vap, &ip, cr, 0, NULL);
if (error == 0) {
d_instantiate(dentry, ip);
error = zpl_xattr_security_init(ip, dir, &dentry->d_name);
if (error == 0)
error = zpl_init_acl(ip, dir);
if (error)
(void) zfs_rmdir(dir, dname(dentry), NULL, cr, 0);
}
spl_fstrans_unmark(cookie);
kmem_free(vap, sizeof (vattr_t));
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:MarkGavalda,项目名称:zfs,代码行数:33,代码来源:zpl_inode.c
示例3: zpl_rename
static int
zpl_rename(struct inode *sdip, struct dentry *sdentry,
struct inode *tdip, struct dentry *tdentry)
{
cred_t *cr = CRED();
int error;
crhold(cr);
error = -zfs_rename(sdip, dname(sdentry), tdip, dname(tdentry), cr, 0);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:ColdCanuck,项目名称:zfs,代码行数:14,代码来源:zpl_inode.c
示例4: zpl_rmdir
static int
zpl_rmdir(struct inode * dir, struct dentry *dentry)
{
cred_t *cr = CRED();
int error;
fstrans_cookie_t cookie;
zfs_sb_t *zsb = dentry->d_sb->s_fs_info;
crhold(cr);
cookie = spl_fstrans_mark();
error = -zfs_rmdir(dir, dname(dentry), NULL, cr, 0);
/*
* For a CI FS we must invalidate the dentry to prevent the
* creation of negative entries.
*/
if (error == 0 && zsb->z_case == ZFS_CASE_INSENSITIVE)
d_invalidate(dentry);
spl_fstrans_unmark(cookie);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:MarkGavalda,项目名称:zfs,代码行数:25,代码来源:zpl_inode.c
示例5: zpl_snapdir_lookup
zpl_snapdir_lookup(struct inode *dip, struct dentry *dentry,
unsigned int flags)
#endif
{
fstrans_cookie_t cookie;
cred_t *cr = CRED();
struct inode *ip = NULL;
int error;
crhold(cr);
cookie = spl_fstrans_mark();
error = -zfsctl_snapdir_lookup(dip, dname(dentry), &ip,
0, cr, NULL, NULL);
ASSERT3S(error, <=, 0);
spl_fstrans_unmark(cookie);
crfree(cr);
if (error && error != -ENOENT)
return (ERR_PTR(error));
ASSERT(error == 0 || ip == NULL);
d_clear_d_op(dentry);
d_set_d_op(dentry, &zpl_dops_snapdirs);
#ifdef HAVE_AUTOMOUNT
dentry->d_flags |= DCACHE_NEED_AUTOMOUNT;
#endif
return (d_splice_alias(ip, dentry));
}
开发者ID:awein,项目名称:zfs,代码行数:30,代码来源:zpl_ctldir.c
示例6: zpl_snapdir_mkdir
static int
zpl_snapdir_mkdir(struct inode *dip, struct dentry *dentry, zpl_umode_t mode)
{
cred_t *cr = CRED();
vattr_t *vap;
struct inode *ip;
int error;
crhold(cr);
vap = kmem_zalloc(sizeof (vattr_t), KM_SLEEP);
zpl_vap_init(vap, dip, mode | S_IFDIR, cr);
error = -zfsctl_snapdir_mkdir(dip, dname(dentry), vap, &ip, cr, 0);
if (error == 0) {
d_clear_d_op(dentry);
d_set_d_op(dentry, &zpl_dops_snapdirs);
d_instantiate(dentry, ip);
}
kmem_free(vap, sizeof (vattr_t));
ASSERT3S(error, <=, 0);
crfree(cr);
return (error);
}
开发者ID:awein,项目名称:zfs,代码行数:25,代码来源:zpl_ctldir.c
示例7: zpl_shares_lookup
zpl_shares_lookup(struct inode *dip, struct dentry *dentry,
unsigned int flags)
#endif
{
fstrans_cookie_t cookie;
cred_t *cr = CRED();
struct inode *ip = NULL;
int error;
crhold(cr);
cookie = spl_fstrans_mark();
error = -zfsctl_shares_lookup(dip, dname(dentry), &ip,
0, cr, NULL, NULL);
ASSERT3S(error, <=, 0);
spl_fstrans_unmark(cookie);
crfree(cr);
if (error) {
if (error == -ENOENT)
return (d_splice_alias(NULL, dentry));
else
return (ERR_PTR(error));
}
return (d_splice_alias(ip, dentry));
}
开发者ID:awein,项目名称:zfs,代码行数:26,代码来源:zpl_ctldir.c
示例8: RecursiveFileList
int RecursiveFileList(const std::string dir_path, std::vector<std::string>& files){
DIR *dir;
dirent *pdir;
dir = opendir(dir_path.c_str());
if (dir == NULL) {
std::cout << dir_path.c_str() << " can not open.\n";
return -1;
}
//d::vector<std::string> cur_files;
while (pdir = readdir(dir)) {
struct stat st;
if(strcmp(pdir->d_name, ".") == 0 || strcmp(pdir->d_name, "..") == 0) {
continue;
}
if (fstatat(dirfd(dir), pdir->d_name, &st, 0) < 0) {
std::cout << "Some error in fstatat\n";
continue;
}
if (S_ISREG(st.st_mode)) {
std::string dname(pdir->d_name);
std::cout << "cur file: " << dir_path + pdir->d_name << std::endl;
files.push_back(dir_path + PATH_SEPARATOR + pdir->d_name);
} else if (S_ISDIR(st.st_mode)){
RecursiveFileList(dir_path + PATH_SEPARATOR + pdir->d_name, files);
}
}
closedir(dir);
}
开发者ID:pyotr777,项目名称:kportal,代码行数:28,代码来源:kdeskdaemon.cpp
示例9: zpl_lookup
zpl_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
#endif
{
cred_t *cr = CRED();
struct inode *ip;
int error;
fstrans_cookie_t cookie;
if (dlen(dentry) > ZFS_MAXNAMELEN)
return (ERR_PTR(-ENAMETOOLONG));
crhold(cr);
cookie = spl_fstrans_mark();
error = -zfs_lookup(dir, dname(dentry), &ip, 0, cr, NULL, NULL);
spl_fstrans_unmark(cookie);
ASSERT3S(error, <=, 0);
crfree(cr);
spin_lock(&dentry->d_lock);
dentry->d_time = jiffies;
#ifndef HAVE_S_D_OP
d_set_d_op(dentry, &zpl_dentry_operations);
#endif /* HAVE_S_D_OP */
spin_unlock(&dentry->d_lock);
if (error) {
if (error == -ENOENT)
return (d_splice_alias(NULL, dentry));
else
return (ERR_PTR(error));
}
return (d_splice_alias(ip, dentry));
}
开发者ID:dun,项目名称:zfs,代码行数:34,代码来源:zpl_inode.c
示例10: while
vector<string> Support::pathVector(string pathDir, string filter){
DIR *dir; // for the directory entity
struct dirent *ent;
// end of the dir must be with /
if(pathDir[pathDir.length()-1] != '/'){
pathDir.append("/");
}
vector<string> files;
if((dir = opendir(pathDir.c_str())) != NULL){
// while there is something to read
while((ent = readdir(dir)) != NULL){
// don't read hidden files and parent folder
if(ent->d_name[0] != '.'){
myString dname(ent->d_name);
if(dname.endsWith(filter)){
string name = dname.getString();
name = pathDir+name;
files.push_back(name);
}
}
}
}
else{
closedir(dir);
}
return files;
}
开发者ID:pajuscz,项目名称:AnnAndFeatures,代码行数:32,代码来源:support.cpp
示例11: zpl_link
static int
zpl_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry)
{
cred_t *cr = CRED();
struct inode *ip = old_dentry->d_inode;
int error;
if (ip->i_nlink >= ZFS_LINK_MAX)
return -EMLINK;
crhold(cr);
ip->i_ctime = CURRENT_TIME_SEC;
igrab(ip); /* Use ihold() if available */
error = -zfs_link(dir, ip, dname(dentry), cr);
if (error) {
iput(ip);
goto out;
}
d_instantiate(dentry, ip);
out:
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:ColdCanuck,项目名称:zfs,代码行数:27,代码来源:zpl_inode.c
示例12: zpl_link
static int
zpl_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry)
{
cred_t *cr = CRED();
struct inode *ip = old_dentry->d_inode;
int error;
fstrans_cookie_t cookie;
if (ip->i_nlink >= ZFS_LINK_MAX)
return (-EMLINK);
crhold(cr);
ip->i_ctime = CURRENT_TIME_SEC;
igrab(ip); /* Use ihold() if available */
cookie = spl_fstrans_mark();
error = -zfs_link(dir, ip, dname(dentry), cr);
if (error) {
VN_RELE(ip);
goto out;
}
d_instantiate(dentry, ip);
out:
spl_fstrans_unmark(cookie);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:RichardChen3511,项目名称:zfs-1,代码行数:30,代码来源:zpl_inode.c
示例13: zpl_rename
static int
zpl_rename(struct inode *sdip, struct dentry *sdentry,
struct inode *tdip, struct dentry *tdentry)
{
cred_t *cr = CRED();
int error;
fstrans_cookie_t cookie;
crhold(cr);
cookie = spl_fstrans_mark();
error = -zfs_rename(sdip, dname(sdentry), tdip, dname(tdentry), cr, 0);
spl_fstrans_unmark(cookie);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:MarkGavalda,项目名称:zfs,代码行数:17,代码来源:zpl_inode.c
示例14: zpl_mknod
static int
zpl_mknod(struct inode *dir, struct dentry *dentry, zpl_umode_t mode,
dev_t rdev)
{
cred_t *cr = CRED();
struct inode *ip;
vattr_t *vap;
int error;
fstrans_cookie_t cookie;
/*
* We currently expect Linux to supply rdev=0 for all sockets
* and fifos, but we want to know if this behavior ever changes.
*/
if (S_ISSOCK(mode) || S_ISFIFO(mode))
ASSERT(rdev == 0);
crhold(cr);
vap = kmem_zalloc(sizeof (vattr_t), KM_SLEEP);
zpl_vap_init(vap, dir, mode, cr);
vap->va_rdev = rdev;
cookie = spl_fstrans_mark();
error = -zfs_create(dir, dname(dentry), vap, 0, mode, &ip, cr, 0, NULL);
if (error == 0) {
d_instantiate(dentry, ip);
error = zpl_xattr_security_init(ip, dir, &dentry->d_name);
if (error == 0)
error = zpl_init_acl(ip, dir);
if (error)
(void) zfs_remove(dir, dname(dentry), cr, 0);
}
spl_fstrans_unmark(cookie);
kmem_free(vap, sizeof (vattr_t));
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:MarkGavalda,项目名称:zfs,代码行数:42,代码来源:zpl_inode.c
示例15: zpl_rmdir
static int
zpl_rmdir(struct inode * dir, struct dentry *dentry)
{
cred_t *cr = CRED();
int error;
crhold(cr);
error = -zfs_rmdir(dir, dname(dentry), NULL, cr, 0);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:ColdCanuck,项目名称:zfs,代码行数:13,代码来源:zpl_inode.c
示例16: zpl_snapdir_rmdir
static int
zpl_snapdir_rmdir(struct inode *dip, struct dentry *dentry)
{
cred_t *cr = CRED();
int error;
crhold(cr);
error = -zfsctl_snapdir_remove(dip, dname(dentry), cr, 0);
ASSERT3S(error, <=, 0);
crfree(cr);
return (error);
}
开发者ID:awein,项目名称:zfs,代码行数:13,代码来源:zpl_ctldir.c
示例17: zpl_rmdir
static int
zpl_rmdir(struct inode * dir, struct dentry *dentry)
{
cred_t *cr = CRED();
int error;
fstrans_cookie_t cookie;
crhold(cr);
cookie = spl_fstrans_mark();
error = -zfs_rmdir(dir, dname(dentry), NULL, cr, 0);
spl_fstrans_unmark(cookie);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:10144161,项目名称:zfs,代码行数:16,代码来源:zpl_inode.c
示例18: dname
QList<QString> ColorSchemeManager::listColorSchemes()
{
QString dname(get_color_schemes_dir());
QDir dir(dname);
QStringList filters;
filters << "*.colorscheme";
dir.setNameFilters(filters);
QStringList list = dir.entryList(filters);
QStringList ret;
foreach(QString i, list)
ret << dname + "/" + i;
return ret;
// return KGlobal::dirs()->findAllResources("data",
// "konsole/*.colorscheme",
// KStandardDirs::NoDuplicates);
}
开发者ID:hawaii-desktop,项目名称:hawaii-terminal,代码行数:16,代码来源:ColorScheme.cpp
示例19: zpl_symlink
static int
zpl_symlink(struct inode *dir, struct dentry *dentry, const char *name)
{
cred_t *cr = CRED();
vattr_t *vap;
struct inode *ip;
int error;
crhold(cr);
vap = kmem_zalloc(sizeof(vattr_t), KM_SLEEP);
zpl_vap_init(vap, dir, dentry, S_IFLNK | S_IRWXUGO, cr);
error = -zfs_symlink(dir, dname(dentry), vap, (char *)name, &ip, cr, 0);
kmem_free(vap, sizeof(vattr_t));
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:ColdCanuck,项目名称:zfs,代码行数:19,代码来源:zpl_inode.c
示例20: zpl_mkdir
static int
zpl_mkdir(struct inode *dir, struct dentry *dentry, zpl_umode_t mode)
{
cred_t *cr = CRED();
vattr_t *vap;
struct inode *ip;
int error;
crhold(cr);
vap = kmem_zalloc(sizeof(vattr_t), KM_SLEEP);
zpl_vap_init(vap, dir, dentry, mode | S_IFDIR, cr);
error = -zfs_mkdir(dir, dname(dentry), vap, &ip, cr, 0, NULL);
kmem_free(vap, sizeof(vattr_t));
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:ColdCanuck,项目名称:zfs,代码行数:19,代码来源:zpl_inode.c
注:本文中的dname函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论