Prechádzať zdrojové kódy

new tempfile writing mode (WriteTemp) for FileFd class
Author: tausq
Date: 2001-03-03 22:36:20 GMT
new tempfile writing mode (WriteTemp) for FileFd class

Arch Librarian 22 rokov pred
rodič
commit
f08fcf34ca
2 zmenil súbory, kde vykonal 8 pridanie a 3 odobranie
  1. 6 1
      apt-pkg/contrib/fileutl.cc
  2. 2 2
      apt-pkg/contrib/fileutl.h

+ 6 - 1
apt-pkg/contrib/fileutl.cc

@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // -*- mode: cpp; mode: fold -*-
 // Description								/*{{{*/
 // Description								/*{{{*/
-// $Id: fileutl.cc,v 1.35 2001/02/20 07:03:17 jgg Exp $
+// $Id: fileutl.cc,v 1.36 2001/03/03 22:36:20 tausq Exp $
 /* ######################################################################
 /* ######################################################################
    
    
    File Utilities
    File Utilities
@@ -403,6 +403,11 @@ bool FileFd::Open(string FileName,OpenMode Mode, unsigned long Perms)
       case WriteAny:
       case WriteAny:
       iFd = open(FileName.c_str(),O_RDWR | O_CREAT,Perms);
       iFd = open(FileName.c_str(),O_RDWR | O_CREAT,Perms);
       break;      
       break;      
+
+      case WriteTemp:
+      unlink(Filename.c_str());
+      iFd = open(FileName.c_str(),O_RDWR | O_CREATE | O_EXCL,Perms);
+      break;
    }  
    }  
 
 
    if (iFd < 0)
    if (iFd < 0)

+ 2 - 2
apt-pkg/contrib/fileutl.h

@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // -*- mode: cpp; mode: fold -*-
 // Description								/*{{{*/
 // Description								/*{{{*/
-// $Id: fileutl.h,v 1.23 2001/02/20 07:03:17 jgg Exp $
+// $Id: fileutl.h,v 1.24 2001/03/03 22:36:20 tausq Exp $
 /* ######################################################################
 /* ######################################################################
    
    
    File Utilities
    File Utilities
@@ -38,7 +38,7 @@ class FileFd
    string FileName;
    string FileName;
    
    
    public:
    public:
-   enum OpenMode {ReadOnly,WriteEmpty,WriteExists,WriteAny};
+   enum OpenMode {ReadOnly,WriteEmpty,WriteExists,WriteAny,WriteTemp};
    
    
    bool Read(void *To,unsigned long Size,bool AllowEof = false);
    bool Read(void *To,unsigned long Size,bool AllowEof = false);
    bool Write(const void *From,unsigned long Size);
    bool Write(const void *From,unsigned long Size);