帮我理解这个函数的标题。代码来自 FreeBSD 8 源代码 UFS 部分

发布于 2024-10-18 04:38:41 字数 752 浏览 5 评论 0原文

 /*
  180  * Create a regular file
  181  */
  182 static int
  183 ufs_create(ap)
  184         struct vop_create_args /* {
  185                 struct vnode *a_dvp;
  186                 struct vnode **a_vpp;
  187                 struct componentname *a_cnp;
  188                 struct vattr *a_vap;
  189         } */ *ap;
  190 {
  191         int error;
  192 
  193         error =
  194             ufs_makeinode(MAKEIMODE(ap->a_vap->va_type, ap->a_vap->va_mode),
  195             ap->a_dvp, ap->a_vpp, ap->a_cnp);
  196         if (error)
  197                 return (error);
  198         return (0);
  199 }

请帮我获取第 182-189 行的信息...这对我来说很奇怪..这个函数标题是什么意思? (我的意思是,什么是返回值,什么是输入参数?) 谢谢大家。

 /*
  180  * Create a regular file
  181  */
  182 static int
  183 ufs_create(ap)
  184         struct vop_create_args /* {
  185                 struct vnode *a_dvp;
  186                 struct vnode **a_vpp;
  187                 struct componentname *a_cnp;
  188                 struct vattr *a_vap;
  189         } */ *ap;
  190 {
  191         int error;
  192 
  193         error =
  194             ufs_makeinode(MAKEIMODE(ap->a_vap->va_type, ap->a_vap->va_mode),
  195             ap->a_dvp, ap->a_vpp, ap->a_cnp);
  196         if (error)
  197                 return (error);
  198         return (0);
  199 }

Please help me to get information from line 182-189...this is strange for me.. What is this function title means? (I mean, what is return value, what is input parameter?)
Thank you all.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

兔小萌 2024-10-25 04:38:41

返回类型为 int,它采用一个参数,即名为 apstruct vop_create_args*。这是 K&R 表示法。

The return type is int and it takes one argument, a struct vop_create_args* named ap. This is K&R notation.

还在原地等你 2024-10-25 04:38:41

这是一个旧式(前原型)函数声明。该函数是当前翻译单元的本地函数,返回一个 intap 是它接受的参数,其类型为:

struct vop_create_args *

所有其他内容只是注释,大概是回显结构的实际定义,以便信息也保存在本地(因此懒惰的编码人员不必去寻找它,如果实际和本地定义超出了范围,这是一种有点危险的做法步)。

它相当于:

static int ufs_create (struct vop_create_args *ap) { ...

It's an old-style (pre-prototype) function declaration. The function is local to the current translation unit, returns an int, ap is the parameter it accepts and it's of the type:

struct vop_create_args *

All that other stuff is just comments, presumably echoing the actual definition of the structure so that the information is held locally as well (so a lazy coder doesn't have to go looking for it, a somewhat dangerous practice if the actual and local definitions get out of step).

It's equivalent to:

static int ufs_create (struct vop_create_args *ap) { ...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文