[Top][All Lists]
[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)
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/support file.c,1.9,1.10,
Gopal.V <address@hidden> <=
- Prev by Date:
[Dotgnu-pnet-commits] CVS: pnet/include il_sysio.h,1.11,1.12
- Next by Date:
[Dotgnu-pnet-commits] CVS: pnet/engine int_table.c,1.42,1.43 int_proto.h,1.40,1.41 lib_file.c,1.5,1.6
- Previous by thread:
[Dotgnu-pnet-commits] CVS: pnet/include il_sysio.h,1.11,1.12
- Next by thread:
[Dotgnu-pnet-commits] CVS: pnet/engine int_table.c,1.42,1.43 int_proto.h,1.40,1.41 lib_file.c,1.5,1.6
- Index(es):