dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnet/support file.c,1.9,1.10


From: Gopal.V <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/support file.c,1.9,1.10
Date: Tue, 24 Dec 2002 23:12:55 -0500

Update of /cvsroot/dotgnu-pnet/pnet/support
In directory subversions:/tmp/cvs-serv26482/support

Modified Files:
        file.c 
Log Message:
Patch #885 -- Aditya Bansod's File.Copy() implementation


Index: file.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/support/file.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** file.c      21 Dec 2002 01:53:37 -0000      1.9
--- file.c      25 Dec 2002 04:12:53 -0000      1.10
***************
*** 339,342 ****
--- 339,377 ----
  }
  
+ ILInt32 ILCopyFile(const char *src, const char *dest)
+ {
+       ILSysIOHandle src_result;
+       ILSysIOHandle dest_result;
+       char buf[4000];
+       int bytes_read;
+ 
+       /* Reset errno because we're not sure what it'll be */
+       errno = 0;
+       if (src == NULL || dest == NULL)
+       {
+           return IL_ERRNO_ENOENT;
+       }
+ 
+       /* Open the source and dest files */
+       src_result = ILSysIOOpenFile(src, ILFileMode_Open, ILFileAccess_Read, 
ILFileShare_Read);
+       dest_result = ILSysIOOpenFile(dest, ILFileMode_CreateNew, 
ILFileAccess_Write, ILFileShare_None);
+ 
+       /* if we had an error, send the errno back */
+       if(src_result == ILSysIOHandle_Invalid || dest_result == 
ILSysIOHandle_Invalid)
+       {
+               return ILSysIOConvertErrno(errno);
+       }
+ 
+       while ( ( bytes_read = ILSysIORead(src_result, buf, 4000) ) != 0 && 
errno == 0)
+       {
+               ILSysIOWrite(dest_result, buf, bytes_read);
+       }
+ 
+       ILSysIOClose(src_result);
+       ILSysIOClose(dest_result);
+       
+       return ILSysIOConvertErrno(errno);
+ }
+ 
  int ILSysIOTruncate(ILSysIOHandle handle, ILInt64 posn)
  {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]