write() ,read();

时间:2022-11-08 12:51:26

int main1(int argc ,char *argv[])
{

  if(argc < 2 ) return 0;
  int fd = open(argv[1] , O_RDONLY);
  if(fd == -1)
  {
    printf("error is %s\n" , strerror(errno));
  }
  else
  {
    printf("fd = %d\n" ,fd);
    char buf[100];
    memset(buf , 0, 100);

    while(read(fd, buf, sizeof(buf)-1) > 0)//文件大的时候由于buf太小每次只读buf大小, sizeof(buf)-1表示每次不把buff读满留一个作为结尾防止最后一个字节乱码
    {
      printf("%s\n" , buf);
      memset(buf , 0, 100);//读完以后清空buf

    }

    

  }

  close(fd);

  return EXIT_SUCCESS;
}

int main(int argc ,char *argv[])
{
  char *s = {"abc.txt"};
  int fd = open(s, O_RDWR|O_APPEND);//以读写追加的方式

  if(fd == -1)
  {
    printf("error is %s\n" , strerror(errno));
  }
  else
  {
    printf("sucess fd = %d\n" ,fd);
    char buf[100];  
    memset(buf, 0,100);
    strcpy(buf,"hello world!\n");
    int i = write(fd, buf , strlen(buf));
  }

  close(fd);

return 0;
}

随机推荐

  1. C语言内存分配方法。

    当C程序运行在操作系统上时,操作系统会给每一个程序分配一定的栈空间. 堆为所有程序共有的,需要时需要申请访问. 一.栈 局部变量.函数一般在栈空间中. 运行时自动分配&自动回收:栈是自动管理的 ...

  2. Linux 常用命令 &colon;ls命令

    ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linu ...

  3. js多线程&quest;

    http://www.cnblogs.com/o--ok/archive/2012/11/04/JS.html http://blog.csdn.net/nx8823520/article/detai ...

  4. 关于VS2012下安装破解文件Visual Assit X的一点说明

    今天在使用Visual Studio 2012的时候,编写代码的助手Visual Assit X突然提示我说,试用期已过,要求我输入一个注册码,我靠,这货不是几个月前已经破解了吗,怎么今天傻不愣登的提 ...

  5. 刷新 tableview

    UITableView对于iOS开发者来说一定不会陌生,很有可能你的APP很多界面都用到它.关于UITableView的文章,想必已经不计其数,没事可以多看看.特别是UITableView优化的文章, ...

  6. jquery ajax 跨域提交(附IE浏览器解决方案)

    后台输出内容之前需要指定header("Access-Control-Allow-Origin: *"); post 之前 jQuery.support.cors = true; ...

  7. 自学Python3&period;1-函数基础

    一.函数概述 1. 简介 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率. 2. 组成 函数代码块以 def 关键词开头,后接函数名和圆括 ...

  8. Linux命令—文件目录

     (1) shell的使用 <1>检查系统当前运行的shell版本: [root@lab root]# echo $SHELL <2>从当前shell下切换到csh: [r ...

  9. thinkPHP中M&lpar;&rpar;和D&lpar;&rpar;的区别

    在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会自动调用M方法.通俗一点说:M实例化参数是数据库的表名 ...

  10. UNDO -- Concept

     Undo data Records of the actions of transactions, primarily before they are committed. The database ...