[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] pnet/support file.c,1.19,1.20
From: |
Rhys Weatherley <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] pnet/support file.c,1.19,1.20 |
Date: |
Thu, 27 Nov 2003 01:28:57 +0000 |
Update of /cvsroot/dotgnu-pnet/pnet/support
In directory subversions:/tmp/cvs-serv10818/support
Modified Files:
file.c
Log Message:
ILCopyFile: rewrite the file copying function.
Index: file.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/support/file.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** file.c 27 Nov 2003 01:14:31 -0000 1.19
--- file.c 27 Nov 2003 01:28:55 -0000 1.20
***************
*** 361,395 ****
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 )
{
! ILSysIOWrite(dest_result, buf, bytes_read);
}
! ILSysIOClose(src_result);
! ILSysIOClose(dest_result);
!
! return ILSysIOConvertErrno(errno);
}
--- 361,409 ----
ILInt32 ILCopyFile(const char *src, const char *dest)
{
! FILE *infile;
! FILE *outfile;
! char buffer[BUFSIZ];
! int len;
! /* Bail out if either of the arguments is invalid */
! if(!src || !dest)
{
return IL_ERRNO_ENOENT;
}
! /* Open the input file */
! if((infile = fopen(src, "rb")) == NULL)
! {
! if((infile = fopen(src, "r")) == NULL)
! {
! return ILSysIOConvertErrno(errno);
! }
! }
! /* Open the output file */
! if((outfile = fopen(dest, "wb")) == NULL)
{
! if((outfile = fopen(dest, "w")) == NULL)
! {
! int error = ILSysIOConvertErrno(errno);
! fclose(infile);
! return error;
! }
}
! /* Copy the file contents */
! while((len = (int)fread(buffer, 1, sizeof(buffer), infile)) > 0)
{
! fwrite(buffer, 1, len, outfile);
! if(len < sizeof(buffer))
! {
! break;
! }
}
! /* Close the files and exit */
! fclose(infile);
! fclose(outfile);
! return 0;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] pnet/support file.c,1.19,1.20,
Rhys Weatherley <address@hidden> <=
- Prev by Date:
[Dotgnu-pnet-commits] pnetlib/JScript JScript.build, 1.12, 1.13 Makefile.am, 1.4, 1.5
- Next by Date:
[Dotgnu-pnet-commits] pnet ChangeLog,1.2805,1.2806
- Previous by thread:
[Dotgnu-pnet-commits] pnetlib/JScript JScript.build, 1.12, 1.13 Makefile.am, 1.4, 1.5
- Next by thread:
[Dotgnu-pnet-commits] pnet ChangeLog,1.2805,1.2806
- Index(es):