当前位置:  技术问答>linux和unix

100分求“根据目录与文件属性知识编写简单版本的程序chgrp ”

    来源: 互联网  发布时间:2017-01-24

    本文导语:  本帖最后由 jrz520014 于 2010-07-05 15:18:23 编辑 如题, 根据目录与文件属性知识编写简单版本的程序chgrp  急需,非常感谢。 T_T~~~ 还有,大虾们有UNIX、LINUX 环境下,chgrp 命令的C源代码。 | chgr...

本帖最后由 jrz520014 于 2010-07-05 15:18:23 编辑
如题,
根据目录与文件属性知识编写简单版本的程序chgrp 
急需,非常感谢。
T_T~~~
还有,大虾们有UNIX、LINUX 环境下,chgrp 命令的C源代码。

|
chgrp属于coreutils包里的命令
下载地址 然后看看相关源码
http://ftp.gnu.org/gnu/coreutils/coreutils-8.5.tar.gz
解压之后chgrp的源码路径是
coreutils-8.5/src/chgrp.c

/* chgrp -- change group ownership of files
   Copyright (C) 1989-1991, 1995-2010 Free Software Foundation, Inc.

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see .  */

/* Written by David MacKenzie . */

#include 
#include 
#include 
#include 
#include 

#include "system.h"
#include "chown-core.h"
#include "error.h"
#include "fts_.h"
#include "group-member.h"
#include "quote.h"
#include "root-dev-ino.h"
#include "xstrtol.h"

/* The official name of this program (e.g., no `g' prefix).  */
#define PROGRAM_NAME "chgrp"

#define AUTHORS 
  proper_name ("David MacKenzie"), 
  proper_name ("Jim Meyering")

#if ! HAVE_ENDGRENT
# define endgrent() ((void) 0)
#endif

/* The argument to the --reference option.  Use the group ID of this file.
   This file must exist.  */
static char *reference_file;

/* For long options that have no equivalent short option, use a
   non-character as a pseudo short option, starting with CHAR_MAX + 1.  */
enum
{
  DEREFERENCE_OPTION = CHAR_MAX + 1,
  NO_PRESERVE_ROOT,
  PRESERVE_ROOT,
  REFERENCE_FILE_OPTION
};

static struct option const long_options[] =
{
  {"recursive", no_argument, NULL, 'R'},
  {"changes", no_argument, NULL, 'c'},
  {"dereference", no_argument, NULL, DEREFERENCE_OPTION},
  {"no-dereference", no_argument, NULL, 'h'},
  {"no-preserve-root", no_argument, NULL, NO_PRESERVE_ROOT},
  {"preserve-root", no_argument, NULL, PRESERVE_ROOT},
  {"quiet", no_argument, NULL, 'f'},
  {"silent", no_argument, NULL, 'f'},
  {"reference", required_argument, NULL, REFERENCE_FILE_OPTION},
  {"verbose", no_argument, NULL, 'v'},
  {GETOPT_HELP_OPTION_DECL},
  {GETOPT_VERSION_OPTION_DECL},
  {NULL, 0, NULL, 0}
};

/* Return the group ID of NAME, or -1 if no name was specified.  */

static gid_t
parse_group (const char *name)
{
  gid_t gid = -1;

  if (*name)
    {
      struct group *grp = getgrnam (name);
      if (grp)
        gid = grp->gr_gid;
      else
        {
          unsigned long int tmp;
          if (! (xstrtoul (name, NULL, 10, &tmp, "") == LONGINT_OK
                 && tmp 

    
 
 

您可能感兴趣的文章:

  • 如何编写程序枚举一个目录下的所有文件和一级子目录?
  • 怎样编写一个Shell,把当前目录下的所有文件都重新命名
  • 请问脚本如何编写:搜索当前目录下所有lcd.c的文件中某个关键字
  • 关于编写SHELL,实现更改当前目录的方法,请指教
  • (在线等)在shell中怎么编写一个脚本转到另一个目录呢??
  • 100请教:如何编写脚本,执行某个目录下的所有可执行文件,并将其输出内容重定向到某个文件。(在线等)
  • 在linux系统下,怎样编写shell脚本把当前目录下的文件(文件日期要求是2011年9月14日01点至2011年9月15日01点之间。。。。
  • linux如何用Shell编写脚本获取进程目录下的cwd路径和exe路径
  • 请教一个问题,如何编写shell脚本把一个目录下每天新增的所有文件定时传到ftp上面?
  • 多目录的Makefile编写
  • 那位高手能告知在LINUX下,用C语言怎样编写进行目录操作的程序(详见内)?
  • 多目录源文件makefile编写
  • C++编写FTP客户端解析LIST命令获取目录不完整,求解。
  • 怎么把一个目录下的所有文件和目录改为755的属性?
  • 求助,linux中修改了目录dir下的某个文件,相应的dir属性中的时间会与修改目录下文件的时间一致,这是怎么实现的?
  • 修改目录的用户属性的问题
  • 请问怎样把一个目录下的所有文件夹属性设置为755,文件设置为644?
  • 如何使得目录可写(修改目录属性没有效果)
  • 获取文件属性,大小,目录,创建时间等信息的函数是什么?
  • 为什么调试servet每次都要重起服务器,是不是要在tomcat下的server.xml修改服务器虚拟目录的属性,,
  • abc用户修改在root目录下,abc自己建的文件属性,为什么改不了?
  • 请教如何关闭或开启特定目录的atime属性?
  • linux查看目录属性的命令是什么呢??我想像这样子的格式显示:drwxr--r--. 2 root root 4096 2010-09-20 04:53 te
  • linux查看下级目录的时候可以,但是查看上级目录文件属性的时候出现了错误,求高手指点
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux不同版本内核目录下的ChangeLog是以哪个版本作为对比?
  • 在shell下如何查询kde的版本以及kde装在那个目录下面
  • tomcat4.0.2好象这个版本,如何设置自己的目录
  • 在TOMCAT 3.x版本中,BIN目录下有tomcat.bat、tomcatEnv.bat,可是在TOMCAT 4.x中,这几个文件跑那去了?????
  • python读文件,写文件操作以及目录操作
  • 怎样在linux下用命令实现cp目录a下的子目录的所有内容到b目录中,只cp目录a的子目录内容???
  • Linux下通过rpm安装软件详细介绍以及如何将软件安装到指定目录
  • 怎样在linux下用命令实现cp目录a下的字目录的所有内容到b目录中,cp子目录内容???
  • 怎样用chown改变目录的所属用户和组时,怎样把这个目录下的子目录和所有子目录里的文件的所属用户和组都同时该了啊
  • 写一个shell,把一个目录下所有的子目录中的文件移至本目录中,并且在文件名的前面加上子目录的文件夹名
  • 请问LINUX行命令方式怎么COPY一个目录下所有文件和子目录到另一个目录下
  • 如果计算一个目录下面所有指定类型文件的数目和总大小(包括该目录下所有的子目录)
  • 如何将目录下所有的子目录及文件复制到另一目录下
  • 为什么在我的linux7.0中,/usr/src/目录下只有redhat目录而没有linux目录?
  • 我的sun5.8工作站下目录下空间不够,其他目录还有空间,怎么把其他目录下的空间分配过来?
  • 源代码分布在几个不同的目录中,如何在 Makefile 文件中,给出相应的目录??我不知道怎么将目录加进去!55555
  • 大家知道在shell那里删除一个里面有内容的目录应该要用什么命令呢?注意,是有内容内目录啊,不是空目录!
  • 请问,一个目录(my_dir)下有很多子目录,每个子目录下有大量的文件,想删除my_dir,最好的方法是什么?谢谢
  • 一个空的目录260g,里面有10个20g左右的子目录。如何删除该目录呢?
  • Solaris tar命令求教:如何在压缩一个目录的时候排除该目录下的某个子目录?
  • IP地址数字互转 iis7站长之家
  • [参与者均有分] 如何在压缩一个目录的时候排除该目录下的某些深层子目录?
  • 如何将一个目录下的所有文件及子目录都copy到目的目录下???
  • 只给一个目录路径,怎样再在其下建立一个新的目录(给定目录名),然后再在其下建立一个新的文件(给定文件名)?
  • 有什么简便的可以删除目录下及其各级子目录下所有文件,但保留目录结构的方法么?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3