blob: 4f952f2ef99fbfb5fee101629ade8c4f501adafe [file] [log] [blame]
Reid Spencer46189572004-12-23 21:16:46 +00001//===- lib/Debugger/FDHandle.cpp - File Descriptor Handle -----------------===//
Misha Brukmanedf128a2005-04-21 22:36:52 +00002//
Reid Spencer55cf0a62004-12-22 10:24:55 +00003// The LLVM Compiler Infrastructure
4//
5// This file was developed by the LLVM research group and is distributed under
6// the University of Illinois Open Source License. See LICENSE.TXT for details.
Misha Brukmanedf128a2005-04-21 22:36:52 +00007//
Reid Spencer55cf0a62004-12-22 10:24:55 +00008//===----------------------------------------------------------------------===//
9//
Reid Spencer46189572004-12-23 21:16:46 +000010// This file implements a class for ensuring that Unix file handles get closed.
Reid Spencer55cf0a62004-12-22 10:24:55 +000011//
12//===----------------------------------------------------------------------===//
13
14#include "FDHandle.h"
15#include <unistd.h>
16
17using namespace llvm;
18
19//===----------------------------------------------------------------------===//
20// FDHandle class implementation
21//
22
23FDHandle::~FDHandle() throw() {
Misha Brukmanedf128a2005-04-21 22:36:52 +000024 if (FD != -1)
Reid Spencer55cf0a62004-12-22 10:24:55 +000025 ::close(FD);
26}
27
28FDHandle &FDHandle::operator=(int fd) throw() {
Misha Brukmanedf128a2005-04-21 22:36:52 +000029 if (FD != -1)
Reid Spencer55cf0a62004-12-22 10:24:55 +000030 ::close(FD);
31 FD = fd;
32 return *this;
33}