当前位置: 首页 > wzjs >正文

广州做网站企业重庆森林为什么叫这个名字

广州做网站企业,重庆森林为什么叫这个名字,无极城市在线招聘,win10系统做mac系统下载网站1.文件编程 window如何手动修改文件 比如写一个word文档: Linux呢? 打开/创建文档 -> 编辑文档 -> 保存文档 -> 关闭文档 计算机如何帮助我们自动化完成以上操作 操作系统提供了一系列的API 如Linux系统: 打开 op…

1.文件编程

window如何手动修改文件 比如写一个word文档: Linux呢?

打开/创建文档  ->  编辑文档  ->  保存文档  ->  关闭文档

计算机如何帮助我们自动化完成以上操作

操作系统提供了一系列的API

如Linux系统:

打开       open

读写        write /read

光标定位 lseek    

关闭       close

打开/创建文件

参数说明

Pathname:要打开的文件名(含路径,缺省为当前路径) Flags:     O_RDONLY 只读打开        O_WRONLY 只写打开        O_RDWR 可读可写打开    当我们附带了权限后,打开的文件就只能按照这种权限来操作。    

以上这三个常数中应当只指定一 个。下列常数是可选择的:            

O_CREAT 若文件不存在则创建它。使用此选项时,需要同时说明第三个参数mode,用其说明该新文件的存取许可权限。        O_EXCL 如果同时指定了OCREAT,而文件已经存在,则出错。                 O_APPEND 每次写时都加到文件的尾端。        O_TRUNC 属性去打开文件时,如果这个文件中本来是有内容的,而且为只读或只写成功打开,则将其长度截短为0。

Mode:一定是在flags中使用了O_CREAT标志,mode记录待创建的文件的访问权限。

#include <sys/types.h>
       #include <sys/stat.h>
       #include <fcntl.h>
#include <stdio.h>

int main()
{
        //int open(const char *pathname, int flags);
        int fd;
       fd= open ("./file0",O_RDWR);
      return 0;
}

更改为

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>

int main()
{
        //int open(const char *pathname, int flags);
        int fd;
       fd= open ("./file0",O_RDWR);
       if(fd == -1){
                 printf("fd = %d\n",fd);
                fd = open("./file0",O_RDWR|O_CREAT,0600);
                if(fd > 0){
                        printf("creat file0 success!\n");
                        printf("fd = %d\n",fd);
                }
       }
      return 0;
}
 

创建文件creat函数

写入文件

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

int main()
{
        //int open(const char *pathname, int flags);
        int fd;
        char *buf;
       fd= open ("./file0",O_RDWR);
       if(fd == -1){
                 printf("fd = %d\n",fd);
                fd = open("./file0",O_RDWR|O_CREAT,0600);
                if(fd > 0){
                        printf("creat file0 success!\n");
                        printf("fd = %d\n",fd);
                }
       }

       printf("open file0 success!\n");

//ssize_t write(int fd, const void *buf, size_t count);
       write(fd,buf,strlen(buf));

       close(fd);

      return 0;
}
 

读取文件

#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

int main()
{
        //int open(const char *pathname, int flags);
        int fd;
        char *buf = "mmm is my lover";
       fd= open ("./file0",O_RDWR);
       if(fd == -1){
                 printf("fd = %d\n",fd);
                fd = open("./file0",O_RDWR|O_CREAT,0600);
                if(fd > 0){
                        printf("creat file0 success!\n");
                        printf("fd = %d\n",fd);
                }
       }

       printf("open file0 success!\n");

//ssize_t write(int fd, const void *buf, size_t count);
       int n_write = write(fd,buf,strlen(buf));
        if(n_write != -1){
                printf("write success!\n");
        }

        close(fd);
        fd= open ("./file0",O_RDWR);

        char *readBuf;
        readBuf = (char *)malloc(sizeof(char)*n_write+1);
   //   ssize_t read(int fd, void *buf, size_t count);
        int n_read = read(fd, readBuf,n_write);
        if(n_read != -1){
                printf("read success!\n");
                printf("read:%d,text:%s\n",n_read,readBuf);


        }


        close(fd);

      return 0;
}

文件”光标”位置

将文件读写指针相对whence移动offset个字节

#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

int main()
{
        //int open(const char *pathname, int flags);
        int fd;
        char *buf = "mmm is my lover";
       fd= open ("./file0",O_RDWR);
       if(fd == -1){
                 printf("fd = %d\n",fd);
                fd = open("./file0",O_RDWR|O_CREAT,0600);
                if(fd > 0){
                        printf("creat file0 success!\n");
                        printf("fd = %d\n",fd);
                }
       }

       printf("open file0 success!\n");

//ssize_t write(int fd, const void *buf, size_t count);
       int n_write = write(fd,buf,strlen(buf));
        if(n_write != -1){
                printf("write success!\n");
        }

// off_t lseek(int fd, off_t offset, int whence);
        lseek(fd,0,SEEK_SET);

        char *readBuf;
        readBuf = (char *)malloc(sizeof(char)*n_write+1);
   //   ssize_t read(int fd, void *buf, size_t count);
        int n_read = read(fd, readBuf,n_write);
        if(n_read != -1){
                printf("read success!\n");
                printf("read:%d,text:%s\n",n_read,readBuf);


        }


        close(fd);

      return 0;
}
 

关闭文件

#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

int main()
{
        //int open(const char *pathname, int flags);
        int fd;
        char *buf = "mmm is my lover";
       fd= open ("./file0",O_RDWR);
       if(fd == -1){
                 printf("fd = %d\n",fd);
                fd = open("./file0",O_RDWR|O_CREAT,0600);
                if(fd > 0){
                        printf("creat file0 success!\n");
                        printf("fd = %d\n",fd);
                }
       }

       printf("open file0 success!\n");

//ssize_t write(int fd, const void *buf, size_t count);
       int n_write = write(fd,buf,strlen(buf));
        if(n_write != -1){
                printf("write success!\n");
        }

// off_t lseek(int fd, off_t offset, int whence);
        int fileSize = lseek(fd,0,SEEK_END);
        printf("file size is :%d\n",fileSize);

        char *readBuf;
        readBuf = (char *)malloc(sizeof(char)*n_write+1);
   //   ssize_t read(int fd, void *buf, size_t count);
        int n_read = read(fd, readBuf,n_write);
        if(n_read != -1){
                printf("read success!\n");
                printf("read:%d,text:%s\n",n_read,readBuf);


        }


        close(fd);

      return 0;
}
 

文件编程的一般步骤

打开/创建文件  ->  读取文件/写入文件 -> 关闭文件

#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

int main(int argc, char **argv)
{
        int fdSrc;
        char *readbuf;
        int fdDes;

        if(argc != 3){
                printf("Param Error!\n");
                exit(-1);
        }
        fdSrc = open(argv[1],O_RDWR);

        int size = lseek(fdSrc,0,SEEK_END);

        lseek(fdSrc,0,SEEK_SET);

        readbuf = (char*)malloc(sizeof(char)*size + 8);
        read(fdSrc, readbuf, size);

        fdDes = open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0600);

        write(fdDes,readbuf,strlen(readbuf));

        close(fdSrc);
        close(fdDes);

      return 0;
}
 

文件编程练手1

实现linux cp命令的代码

#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

int main(int argc, char **argv)
{
        int fdSrc;
        char *readbuf;
        int fdDes;

        if(argc != 3){
                printf("Param Error!\n");
                exit(-1);
        }
        fdSrc = open(argv[1],O_RDWR);

        int size = lseek(fdSrc,0,SEEK_END);

        lseek(fdSrc,0,SEEK_SET);

        readbuf = (char*)malloc(sizeof(char)*size + 8);
        read(fdSrc, readbuf, size);

        fdDes = open(argv[2],O_RDWR|O_CREAT,0600);

        write(fdDes,readbuf,strlen(readbuf));

        close(fdSrc);
        close(fdDes);

      return 0;
}


文件编程练手2

配置文件的修改

//配置文件的修改,该demo10更改text.config文件里面LENG=3的值。

#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

int main(int argc, char **argv)
{
        int fdSrc;
        char *readbuf;

        if(argc != 2){
                printf("Param Error!\n");
                exit(-1);
        }
        fdSrc = open(argv[1],O_RDWR);

        int size = lseek(fdSrc,0,SEEK_END);

        lseek(fdSrc,0,SEEK_SET);

        readbuf = (char*)malloc(sizeof(char)*size + 8);
        read(fdSrc, readbuf, size);

        char *p = strstr(readbuf,"LENG=");
        if(p == NULL){
                printf("Not Found!\n");
                exit(-1);
        }
        p += strlen("LENG=");
        *p = '8';

        lseek(fdSrc,0,SEEK_SET);

        write(fdSrc,readbuf,strlen(readbuf));

        close(fdSrc);

      return 0;
}

文件如何记录一个整数


#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

int main()
{
        int fd = open("./file1",O_RDWR|O_TRUNC);

        int data = 5;
        int data1;

        write(fd,&data,sizeof(int));

        lseek(fd,0,SEEK_SET);

        read(fd,&data1,sizeof(int));

        printf("read : %d\n",data1);


        close(fd);

      return 0;
}

文件如何记录一个结构体

#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

struct Test{

        int a;
        char c;
};

int main()
{
        struct Test data = {5, 'a'};
        struct Test data1;

        int fd = open("./file1",O_RDWR|O_TRUNC);


        write(fd,&data,sizeof(struct Test));

        lseek(fd,0,SEEK_SET);

        read(fd,&data1,sizeof(struct Test));

        printf("read : %d,%c\n",data1.a,data1.c);


        close(fd);

      return 0;
}

文件如何记录一个结构体数组

#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

struct Test{

        int a;
        char c;
};

int main()
{
        struct Test data[2] ={ {5, 'a'},{100,'b'}};
        struct Test data1[2];

        int fd = open("./file1",O_RDWR|O_TRUNC);


        write(fd,&data,sizeof(struct Test)*2);

        lseek(fd,0,SEEK_SET);

        read(fd,&data1,sizeof(struct Test)*2);

        printf("read : %d,%c\n",data1[0].a,data1[0].c);
        printf("read : %d,%c\n",data1[1].a,data1[1].c);


        close(fd);

      return 0;
}

http://www.dtcms.com/wzjs/464278.html

相关文章:

  • 网站主题怎么介绍今日新闻头条内容
  • 山东网站建设公司排名百度竞价效果怎么样
  • 众筹网站制作镇江网站建站
  • 网站建设项目汇报seo咨询
  • wordpress 采集微博百度seo排名点击器app
  • 无锡市政府网站建设评估现在做百度快速收录的方法
  • 昆明做网站需要多少钱怎么创建一个网站
  • 雄安网站建设推广推广项目网站
  • 推荐定制型网站建设自动收录网
  • 网站开发年终总结如何被百度收录
  • 加强网站建设和维护工作包头网站建设推广
  • 网站防注入站点查询
  • 注册公司网站需要多少钱市场调研方法
  • 南昌专门做网站的人最新新闻热点事件2022
  • 电脑编程培训只要做好关键词优化
  • 品牌建设运营规划下载优化大师并安装
  • 网页设计最牛的网站建设运营网站
  • 专业的网站建设公司排名重庆今天刚刚发生的重大新闻
  • 福建省建设厅网站 2013营销网站建设软件下载
  • 设计网站 behancephp开源建站系统
  • 虾皮跨境电商平台关于进一步优化 广州
  • 做海外网站的公司热点新闻事件
  • 企业网站建设如何做好外链建设竞价 推广
  • 单位网站等级保护必须做吗株洲今日头条新闻
  • 做音乐网站之前的准备全球网络营销公司排行榜
  • wordpress 漫画站合肥seo排名优化
  • 闽侯县住房和城乡建设网站网站移动端优化工具
  • 网站怎么做才吸引人百度网盘pc网页版入口
  • 网站开发需要哪些知识cpm广告联盟平台
  • 网站上怎么做企业推广线上广告平台