Chinaunix首页 | 论坛 | 博客
  • 博客访问: 630688
  • 博文数量: 1008
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 5175
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-31 09:44
文章分类
文章存档

2012年(1008)

我的朋友

分类:

2012-08-01 11:36:21

原文地址:C 文件的基本操作 作者:luozhiyong131

/********************

创建文件

*********************/

#include

#include

#include

#include

#include

 

int main (void)

{

      int fd;

      fd = open("test", O_CREAT,S_IRUSR|S_IWUSR|S_IXGRP);

      printf("fd=%d\n",fd);

      return 0;

}

 

 

#include

#include

#include

#include

#include

#include

 

 int main()

{

      int fd;

      fd = open("test",O_CREAT,00750);

      if(fd = -1)

           {

           perror("open error");

           exit (1);

      }

      return 0;

}

 

 

/******************

文件复制程序

*******************/

#include

#include

#include

#include

#include

#include

#include

 

#define size 256

 

int main (int argc, char **argv)

{

      int fd1, fd2;

      int cntr,cntw;

      char  buffer[size];

      char *ptr;

      if (argc!=3)

           {

           printf ("too few arguments.\n");

           exit(1);

      }

     

      fd1 = open(argv[1],O_RDONLY);    

      if(fd1==-1)

           {

           perror("open file1 failed");

           exit (1);

      }

     

      fd2 = open(argv[2],O_WRONLY|O_CREAT,S_IRUSR|S_IWUSR);

      if(fd2==-1)

           {

           perror("open file2 failed");

           exit (1);

      }

     

      while((cntr=read(fd1,buffer,size))!=0)

           {

           if(cntr==-1)

                 {

                 perror("read error");

                 exit (1);

           }

           else if(cntr>0)

                 {

                 ptr = buffer;

                 while((cntw=write(fd2,ptr,cntr))!=0)

                      {

                      if(cntw==-1)

                      {

                      perror("write error");

                      exit (1);

                      }

                      else if(cntr==cntw)

                            break;

                      else if(cntw>0)

                      {

                      ptr+=cntw;

                      cntr-=cntw;

                      }                    

                 }

                 if(cntw==-1)              

                      break;

                

           }        

      }

          

      close (fd1);

      close (fd2);

      printf("Done!\n");

      return 0;   

}

 

 

/******************

创建文件的符号连接

*******************/

#include

#include

#include

#include

 

int main(int argc, char **argv)

{

      int ret;

      if(argc!=3)

      {

           printf("too few argumunts\n");

           exit(1);

      }

     

      ret = symlink(argv[1],argv[2]);

      if(ret==-1)

      {

           perror("syslink failed");

           exit(1);

      }

 

      printf("done\n");

      return 0;   

}

 

 

阅读(172) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~