mesg和biff命令的是实现(最后一篇博客了,从此不在写了)

mesg程序实际上就是用来查看和设置终端的组的写权限,而biff用来查看和设置终端的用户的执行权限。这两个位分别为S_IXUSR,S_IWGRP,我的实现是用stat获取mode,然后调用chmod修改mode,网站空间,我实现的这两个程序的代码基本一样,只有一处不一样,mesg中#define MC_BITS_IWGRP而biff中#defineMC_BITS_IXUSR。另外,biff和mail一组,mesg和write一组,另外本人的write并没有检验S_IWGRP位,虚拟主机,但本人也不想改写了。另外由于代码极其简单,所以注释就没写(本人一直就坚持一眼能看清的代码不写注释,可是似乎写了博客后就去写冗杂的注释了),最后吐槽一下,用代码来学习系统的办法似乎博客园没人喜欢的说,既然大家不喜欢我也不再去写了,毕竟去实现已经实现很好的程序不是什么好的做法(除非为了学习和兴趣)。

程序作者:莫尘/mc_nns; 程序开源,网站空间,可任意使用和修改

两个命令的代码是一样的,把mesg中的define MC_BITS_IWGRP替换为#defineMC_BITS_IXUSR就成了biff命令了

mesg的代码如下:

1 #include <unistd.h> 2 #include <sys/stat.h> 3 #include <stdio.h> 4 #include <errno.h> 5 #include <string.h> 6 #include <stdlib.h>MC_BIT S_IWGRP*mc_prog_name;mc_usage(void);main(int argc, char *argv[])16 {17struct stat st;18char *p;19char *tty;)) ? ++p : *argv;22tty = ttyname(STDERR_FILENO);23if(tty == NULL){,25 mc_prog_name);26exit(1);27 }28if(stat(tty, &st) == -1){,30 mc_prog_name, tty, strerror(errno));31exit(1);32 }33if(argc == 1){34if(st.st_mode & MC_BIT));printf();;39 }40switch(argv[1][0]){:42if(chmod(tty, st.st_mode | MC_BIT) == -1),44 mc_prog_name, tty, strerror(errno));45break;:47if(chmod(tty, st.st_mode & ~MC_BIT) == -1),49 mc_prog_name, tty, strerror(errno));50break;51default:52 mc_usage();53 };55 }mc_usage(void)59 {, mc_prog_name);61exit(1);62 }爱的力量大到可以使人忘记一切,

mesg和biff命令的是实现(最后一篇博客了,从此不在写了)

相关文章:

  • 【算法】直接插入排序C语言实现
  • 嵌入式 FAAC1.28 在海思HI3518C/HI3518A平台linux中的编译优化
  • Android 动画animation 深入分析
  • Mybatis极其(最)简(好)单(用)的一个分页插件
  • Ext JS Kitchen Sink [Learning by doing](2)ArrayGrid
  • API开发第三篇:PHP的设计模式之完美的单例模式
  • 使用NGUI时遇到物理引擎错误
  • [redis]redis命令汇总(二)
  • 你感兴趣的文章:

    标签云:

    亚洲高清电影在线, 免费高清电影, 八戒影院夜间, 八戒电影最新大片, 出轨在线电影, 午夜电影院, 在线影院a1166, 在线电影院, 在线观看美剧下载, 日本爱情电影, 日韩高清电影在线, 电影天堂网, 直播盒子app, 聚合直播, 高清美剧, 高清美剧在线观看 EhViewer-E站, E站, E站绿色版, qqmulu.com, qq目录网, qq网站目录,