Python os.O_NOINHERIT Examples
The following are 8
code examples of os.O_NOINHERIT().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
os
, or try the search function
.
Example #1
Source File: Utils.py From 802.11ah-ns3 with GNU General Public License v2.0 | 6 votes |
def writef_win32(f,data,m='w',encoding='ISO8859-1'): if sys.hexversion>0x3000000 and not'b'in m: data=data.encode(encoding) m+='b' flags=os.O_CREAT|os.O_TRUNC|os.O_WRONLY|os.O_NOINHERIT if'b'in m: flags|=os.O_BINARY if'+'in m: flags|=os.O_RDWR try: fd=os.open(f,flags) except OSError: raise IOError('Cannot write to %r'%f) f=os.fdopen(fd,m) try: f.write(data) finally: f.close()
Example #2
Source File: Utils.py From royal-chaos with MIT License | 6 votes |
def writef_win32(f,data,m='w',encoding='ISO8859-1'): if sys.hexversion>0x3000000 and not'b'in m: data=data.encode(encoding) m+='b' flags=os.O_CREAT|os.O_TRUNC|os.O_WRONLY|os.O_NOINHERIT if'b'in m: flags|=os.O_BINARY if'+'in m: flags|=os.O_RDWR try: fd=os.open(f,flags) except OSError: raise IOError('Cannot write to %r'%f) f=os.fdopen(fd,m) try: f.write(data) finally: f.close()
Example #3
Source File: logging_utils.py From luci-py with Apache License 2.0 | 6 votes |
def shared_open(path): """Opens a file with full sharing mode and without inheritance. The file is open for both read and write. See https://bugs.python.org/issue15244 for inspiration. """ path = six.text_type(path) handle = ctypes.windll.kernel32.CreateFileW( path, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, None, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, None) ctr_handle = msvcrt.open_osfhandle(handle, os.O_BINARY | os.O_NOINHERIT) return os.fdopen(ctr_handle, 'r+b')
Example #4
Source File: Utils.py From 802.11ah-ns3 with GNU General Public License v2.0 | 5 votes |
def readf_win32(f,m='r',encoding='ISO8859-1'): flags=os.O_NOINHERIT|os.O_RDONLY if'b'in m: flags|=os.O_BINARY if'+'in m: flags|=os.O_RDWR try: fd=os.open(f,flags) except OSError: raise IOError('Cannot read from %r'%f) if sys.hexversion>0x3000000 and not'b'in m: m+='b' f=os.fdopen(fd,m) try: txt=f.read() finally: f.close() if encoding: txt=txt.decode(encoding) else: txt=txt.decode() else: f=os.fdopen(fd,m) try: txt=f.read() finally: f.close() return txt
Example #5
Source File: Utils.py From 802.11ah-ns3 with GNU General Public License v2.0 | 5 votes |
def h_file_win32(fname): try: fd=os.open(fname,os.O_BINARY|os.O_RDONLY|os.O_NOINHERIT) except OSError: raise IOError('Cannot read from %r'%fname) f=os.fdopen(fd,'rb') m=md5() try: while fname: fname=f.read(200000) m.update(fname) finally: f.close() return m.digest()
Example #6
Source File: Utils.py From royal-chaos with MIT License | 5 votes |
def readf_win32(f,m='r',encoding='ISO8859-1'): flags=os.O_NOINHERIT|os.O_RDONLY if'b'in m: flags|=os.O_BINARY if'+'in m: flags|=os.O_RDWR try: fd=os.open(f,flags) except OSError: raise IOError('Cannot read from %r'%f) if sys.hexversion>0x3000000 and not'b'in m: m+='b' f=os.fdopen(fd,m) try: txt=f.read() finally: f.close() if encoding: txt=txt.decode(encoding) else: txt=txt.decode() else: f=os.fdopen(fd,m) try: txt=f.read() finally: f.close() return txt
Example #7
Source File: Utils.py From royal-chaos with MIT License | 5 votes |
def h_file_win32(fname): try: fd=os.open(fname,os.O_BINARY|os.O_RDONLY|os.O_NOINHERIT) except OSError: raise IOError('Cannot read from %r'%fname) f=os.fdopen(fd,'rb') m=md5() try: while fname: fname=f.read(200000) m.update(fname) finally: f.close() return m.digest()
Example #8
Source File: oauth2_client.py From gcs-oauth2-boto-plugin with Apache License 2.0 | 4 votes |
def PutToken(self, key, value): """Serializes the value to the key's filename. To ensure that written tokens aren't leaked to a different users, we a) unlink an existing cache file, if any (to ensure we don't fall victim to symlink attacks and the like), b) create a new file with O_CREAT | O_EXCL (to ensure nobody is trying to race us) If either of these steps fail, we simply give up (but log a warning). Not caching access tokens is not catastrophic, and failure to create a file can happen for either of the following reasons: - someone is attacking us as above, in which case we want to default to safe operation (not write the token); - another legitimate process is racing us; in this case one of the two will win and write the access token, which is fine; - we don't have permission to remove the old file or write to the specified directory, in which case we can't recover Args: key: the hash key to store. value: the access_token value to serialize. """ cache_file = self.CacheFileName(key) LOG.debug('FileSystemTokenCache.PutToken: key=%s, cache_file=%s', key, cache_file) try: os.unlink(cache_file) except: # pylint: disable=bare-except # Ignore failure to unlink the file; if the file exists and can't be # unlinked, the subsequent open with O_CREAT | O_EXCL will fail. pass flags = os.O_RDWR | os.O_CREAT | os.O_EXCL # Accommodate Windows; stolen from python2.6/tempfile.py. if hasattr(os, 'O_NOINHERIT'): flags |= os.O_NOINHERIT if hasattr(os, 'O_BINARY'): flags |= os.O_BINARY try: fd = os.open(cache_file, flags, 0o600) except (OSError, IOError) as e: LOG.warning('FileSystemTokenCache.PutToken: ' 'Failed to create cache file %s: %s', cache_file, e) return f = os.fdopen(fd, 'w+b') serialized = value.Serialize() if isinstance(serialized, six.text_type): serialized = serialized.encode('utf-8') f.write(six.ensure_binary(serialized)) f.close()