675 * Check the validity of an ACL for a file.
676 */
677 int
678 ufs_aclcheck(ap)
679 struct vop_aclcheck_args /* {
680 struct vnode *vp;
681 acl_type_t type;
682 struct acl *aclp;
683 struct ucred *cred;
684 struct thread *td;
685 } */ *ap;
686 {
687
688 if ((ap->a_vp->v_mount->mnt_flag & (MNT_ACLS | MNT_NFS4ACLS)) == 0)
689 return (EOPNOTSUPP);
690
691 if (ap->a_type == ACL_TYPE_NFS4)
692 return (ufs_aclcheck_nfs4(ap));
693
694 return (ufs_aclcheck_posix1e(ap));
695 }
696
697 #endif /* !UFS_ACL */
此代码来自Freebsd UFS源代码。 这个功能很奇怪。 在函数名之后,有一个结构被定义。这是怎么回事? 感谢
答案 0 :(得分:6)
这是一种编写C函数的旧方式,您可以在其中定义如下函数:
void foo(a) /* Function and its arguments */
int a; /* Define the type of the arguments */
{
// Function body
}
删除评论后,您在函数中拥有的内容:
int ufs_aclcheck(ap)
struct vop_aclcheck_args * ap;
{
// Function body
}