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

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

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

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

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

示例1: sys_rename

static int sys_rename(rename_args_t *arg){    rename_args_t           kern_args;    char                    *oldname;    char                    *newname;    int                     err;        if ((err = copy_from_user(&kern_args, arg, sizeof(rename_args_t))) < 0) {        curthr->kt_errno = -err;        return -1;    }        oldname = user_strdup(&kern_args.oldname);    if (!oldname) {        curthr->kt_errno = EINVAL;        return -1;    }        newname = user_strdup(&kern_args.newname);    if (!newname) {        curthr->kt_errno = EINVAL;        kfree(oldname);        return -1;    }        err = do_rename(oldname, newname);    kfree(newname);    kfree(oldname);        if (err < 0) {        curthr->kt_errno = -err;        return -1;    } else return err;}
开发者ID:ketapate,项目名称:kernel_3,代码行数:34,


示例2: sys_link

static int sys_link(link_args_t *arg) {	link_args_t kern_args;	char *to;	char *from;	int err;	if ((err = copy_from_user(&kern_args, arg, sizeof(link_args_t))) < 0) {		curthr->kt_errno = -err;		return -1;	}	to = user_strdup(&kern_args.to);	if (!to) {		curthr->kt_errno = EINVAL;		return -1;	}	from = user_strdup(&kern_args.from);	if (!from) {		curthr->kt_errno = EINVAL;		kfree(to);		return -1;	}	err = do_link(from, to);	kfree(to);	kfree(from);	if (err < 0) {		curthr->kt_errno = -err;		return -1;	} else {		return err;	}}
开发者ID:darshanramu,项目名称:LinuxLikeOS,代码行数:35,


示例3: sys_stat

static int sys_stat(stat_args_t *arg){    stat_args_t kern_args;    struct stat buf;    char *path;    int ret;        if (copy_from_user(&kern_args, arg, sizeof(kern_args)) < 0) {        curthr->kt_errno = EFAULT;        return -1;    }        if ((path = user_strdup(&kern_args.path)) == NULL) {        curthr->kt_errno = EINVAL;        return -1;    }        ret = do_stat(path, &buf);        if (ret == 0) {        ret = copy_to_user(kern_args.buf, &buf, sizeof(struct stat));    }        if (ret != 0) {        kfree(path);        curthr->kt_errno = -ret;        return -1;    }        kfree(path);    return 0;}
开发者ID:ketapate,项目名称:kernel_3,代码行数:32,


示例4: sys_chdir

static int sys_chdir(argstr_t *arg){    argstr_t        kern_args;    char            *path;    int             err;        if ((err = copy_from_user(&kern_args, arg, sizeof(argstr_t))) < 0) {        curthr->kt_errno = -err;        return -1;    }        path = user_strdup(&kern_args);    if (!path) {        curthr->kt_errno = EINVAL;        return -1;    }        err = do_chdir(path);    kfree(path);        if (err < 0) {        curthr->kt_errno = -err;        return -1;    } else return err;}
开发者ID:ketapate,项目名称:kernel_3,代码行数:25,


示例5: sys_umount

static int sys_umount(argstr_t *input){    argstr_t kstr;    char *target;    int ret;        if (copy_from_user(&kstr, input, sizeof(kstr)) < 0) {        curthr->kt_errno = EFAULT;        return -1;    }        if (NULL == (target = user_strdup(&kstr))) {        curthr->kt_errno = EINVAL;        return -1;    }        ret = do_umount(target);    kfree(target);        if (ret) {        curthr->kt_errno = -ret;        return -1;    }        return 0;}
开发者ID:ketapate,项目名称:kernel_3,代码行数:26,


示例6: user_strdup

/* user_strdup, but this handles the errno.  0 on failure, ptr on success */char *user_strdup_errno(struct proc *p, const char *u_string, size_t strlen){	void *k_string = user_strdup(p, u_string, strlen);	if (IS_ERR(k_string)) {		set_errno(-PTR_ERR(k_string));		return NULL;	}	return k_string;}
开发者ID:borisnorm,项目名称:akaros,代码行数:10,


示例7: sys_mount

static int sys_mount(mount_args_t *arg){    mount_args_t kern_args;    char *source;    char *target;    char *type;    int ret;        if (copy_from_user(&kern_args, arg, sizeof(kern_args)) < 0) {        curthr->kt_errno = EFAULT;        return -1;    }        /* null is okay only for the source */    source = user_strdup(&kern_args.spec);    if (NULL == (target = user_strdup(&kern_args.dir))) {        kfree(source);        curthr->kt_errno = EINVAL;        return -1;    }    if (NULL == (type = user_strdup(&kern_args.fstype))) {        kfree(source);        kfree(target);        curthr->kt_errno = EINVAL;        return -1;    }        ret = do_mount(source, target, type);    kfree(source);    kfree(target);    kfree(type);        if (ret) {        curthr->kt_errno = -ret;        return -1;    }        return 0;}
开发者ID:ketapate,项目名称:kernel_3,代码行数:39,


示例8: sys_debug

static int sys_debug(argstr_t *arg) {	argstr_t kern_args;	int err;	char *message;	if ((err = copy_from_user(&kern_args, arg, sizeof(argstr_t))) < 0) {		curthr->kt_errno = -err;		return -1;	}	message = user_strdup(&kern_args);	dbg(DBG_USER, "%s/n", message);	kfree(message);	return 0;}
开发者ID:darshanramu,项目名称:LinuxLikeOS,代码行数:15,


示例9: sys_execve

static int sys_execve(execve_args_t *args, regs_t *regs){    execve_args_t kern_args;    char *kern_filename = NULL;    char **kern_argv = NULL;    char **kern_envp = NULL;    int err;        if ((err = copy_from_user(&kern_args, args, sizeof(kern_args))) < 0) {        curthr->kt_errno = -err;        goto cleanup;    }        /* copy the name of the executable */    if ((kern_filename = user_strdup(&kern_args.filename)) == NULL)        goto cleanup;        /* copy the argument list */    if (kern_args.argv.av_vec) {        if ((kern_argv = user_vecdup(&kern_args.argv)) == NULL)            goto cleanup;    }        /* copy the environment list */    if (kern_args.envp.av_vec) {        if ((kern_envp = user_vecdup(&kern_args.envp)) == NULL)            goto cleanup;    }        err = do_execve(kern_filename, kern_argv, kern_envp, regs);        curthr->kt_errno = -err;    cleanup:    if (kern_filename)        kfree(kern_filename);    if (kern_argv)        free_vector(kern_argv);    if (kern_envp)        free_vector(kern_envp);    if (curthr->kt_errno)        return -1;    return 0;}
开发者ID:ketapate,项目名称:kernel_3,代码行数:44,


示例10: sys_open

static int sys_open(open_args_t *arg){    open_args_t             kern_args;    char                    *path;    int                     err;        if ((err = copy_from_user(&kern_args, arg, sizeof(open_args_t))) < 0) {        curthr->kt_errno = -err;        return -1;    }        path = user_strdup(&kern_args.filename);    if (!path) {        curthr->kt_errno = EINVAL;        return -1;    }        err = do_open(path, kern_args.flags);    kfree(path);    if (err < 0) {        curthr->kt_errno = -err;        return -1;    } else return err;}
开发者ID:ketapate,项目名称:kernel_3,代码行数:24,



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


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