Linux下创建、打开、写入文件操作

来源:互联网 发布:柠檬绿茶 淘宝 编辑:程序博客网 时间:2024/06/05 04:44

linux下既然把所有的设备都看作文件来处理,就要熟练使用linux下文件操作的相关API。


#include<stdio.h>    #include<sys/types.h>  #include<sys/stat.h>  #include<fcntl.h>    #define LENGTH 100    int main(int argc,char* argv[])  {      int fd,len;      char str[LENGTH];      char *content="hi!";      char *path="/tmp/test.txt";      if(argc<2){          printf("Usage:Please pass the content as argument!\n");          exit(1);      }      content=argv[1];      fd=open(path,O_CREAT|O_RDWR,S_IRUSR|S_IWUSR);      if(fd<0){          printf("Fail to open or create file!\n");          exit(1);      }      if(write(fd,content,strlen(content))!=strlen(content)){          printf("write error!\n");          exit(1);      }      close(fd);        if((fd=open(path,O_RDWR))<0){          printf("Fail to open file!\n");          exit(1);      }      if((len=read(fd,str,LENGTH))<0){          printf("Read file error!\n");          exit(1);      }      str[len]='\0';      printf("%s\n",str);      close(fd);      return 0;  } 


用malloc函数代替数组str,根据要打印的内容长度动态申请内存: 

    #include<stdio.h>            #include<sys/types.h>      #include<sys/stat.h>      #include<fcntl.h>            //#define LENGTH 100            int main(int argc,char* argv[])      {          int fd,len;      //    char str[LENGTH];          char *str;          char *content="hi!";          char *path="/tmp/test.txt";          if(argc<2){              printf("%s\n",content);              printf("Usage:Please pass the content as argument!\n");              exit(1);          }          content=argv[1];          fd=open(path,O_CREAT|O_RDWR,S_IRUSR|S_IWUSR);          if(fd<0){              printf("Fail to open or create file!\n");              exit(1);          }          if(write(fd,content,strlen(content))!=strlen(content)){              printf("write error!\n");              exit(1);          }          close(fd);                if((fd=open(path,O_RDWR))<0){              printf("Fail to open file!\n");              exit(1);          }          str=malloc(strlen(content));          if((len=read(fd,str,strlen(content)))<0){              printf("Read file error!\n");              exit(1);          }      //    str[len]='\0';          printf("%s\n",str);          free(str);          close(fd);          return 0;      }  



0 0
原创粉丝点击