免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2477 | 回复: 6
打印 上一主题 下一主题

[C] unix c 开始了,天天点点滴滴 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-30 00:43 |只看该作者 |倒序浏览
一:UNIX基础知识

标准输入输出:
  1. #include "stdio.h"
  2. #include "stdlib.h"
  3. #include "unistd.h"

  4. #define BUFFSIZE 4096
  5. int
  6. main (int argc, char *argv[]) {
  7.       int       n;
  8.       char      buffer[BUFFSIZE];

  9.       while ((n = read(STDIN_FILENO, buffer, BUFFSIZE)) > 0)
  10.         if (write(STDOUT_FILENO, buffer, n) != n) {
  11.                 printf ("write error");
  12.                 exit(0);
  13.         }

  14.       if (n < 0) {
  15.         printf ("read error");
  16.         exit(0);
  17.       }

  18.       exit(0);

  19. }
复制代码

论坛徽章:
0
2 [报告]
发表于 2011-04-30 00:45 |只看该作者
ls命令:
  1. #include "stdio.h"
  2. #include "stdlib.h"
  3. #include "dirent.h"


  4. void err_quit(char *str)
  5. {
  6.       printf ("%s", str);
  7. }

  8. int
  9. main (int argc, char **argv)
  10. {
  11.       DIR       *dp;
  12.       struct    dirent *dirp;

  13.       if (argc != 2)
  14.         err_quit ("usage: ls directory_name");

  15.       if ((dp = opendir (argv[1])) == NULL)
  16.         err_quit(argv[1]);

  17.       while ((dirp = readdir(dp)) != NULL)
  18.         printf ("%s\n", dirp->d_name);

  19.       closedir(dp);
  20.       exit(0);
  21. }
复制代码

论坛徽章:
0
3 [报告]
发表于 2011-04-30 00:47 |只看该作者
获取当前程序的进程ID:
  1. #include "stdio.h"
  2. #include "stdlib.h"

  3. int
  4. main (int argc, char **argv)
  5. {
  6.         printf ("the program id is %d\n", getpid());
  7.         exit(0);
  8.         return 0;
  9. }
复制代码

论坛徽章:
0
4 [报告]
发表于 2011-04-30 01:26 |只看该作者
创建子进程,执行简单命令:
  1. #include "stdio.h"
  2. #include "stdlib.h"
  3. #include "unistd.h"
  4. #include "string.h"
  5. #include "sys/types.h"
  6. #include "sys/wait.h"

  7. #define MAXLINE  1024


  8. int
  9. main (int argc, char *argv[]) {
  10.       pid_t     pid;
  11.       char      buf[MAXLINE];
  12.       int       status;

  13.       while (fgets(buf, MAXLINE, stdin) != NULL) {
  14.         if (buf[strlen(buf) - 1] == '\n')
  15.                 buf[strlen(buf) - 1] = 0;

  16.         if ((pid = fork()) < 0) {
  17.                 printf ("fork error");
  18.                 exit(0);
  19.         }else if (pid == 0) {
  20.                 execlp (buf, buf, (char *)0);
  21.                 printf ("cound't execute %s\n", buf);
  22.                 exit(127);
  23.         }

  24.         if ((pid = waitpid (pid, &status, 0)) < 0)
  25.                 printf ("waitpid error");



  26.       }

  27.       exit(0);
  28. }
复制代码

论坛徽章:
0
5 [报告]
发表于 2011-04-30 01:31 |只看该作者
用户ID,组ID:

  1. #include "stdio.h"
  2. #include "stdlib.h"
  3. #include "unistd.h"

  4. int
  5. main (int argc, char *argv[]) {
  6.            printf ("user id: %d, group id: %d", getuid(), getgid());
  7.            return 0;
  8. }
复制代码

论坛徽章:
20
CU大牛徽章
日期:2013-04-17 11:48:26羊年新春福章
日期:2015-03-10 22:39:202015年中国系统架构师大会
日期:2015-06-29 16:11:282015亚冠之平阳省
日期:2015-07-31 09:19:042015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-09-30 06:20:002015亚冠之柏太阳神
日期:2015-10-19 20:29:5915-16赛季CBA联赛之天津
日期:2016-11-29 14:03:4315-16赛季CBA联赛之北控
日期:2016-12-24 20:51:492015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-12 20:58:532014年中国系统架构师大会
日期:2014-10-14 15:59:00
6 [报告]
发表于 2011-04-30 06:53 |只看该作者
LZ好样的,望坚持下去

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
7 [报告]
发表于 2011-04-30 08:48 |只看该作者
这个可以写到博客系列里,免得帖子老被大家的回复打断,不好找主题~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP