ScopedStdioHandle

来源:互联网 发布:淘宝匿名评价不显示吗 编辑:程序博客网 时间:2024/06/05 20:57

class ScopedStdioHandle {

 public:

  ScopedStdioHandle()

      : handle_(NULL) { }

 

  explicit ScopedStdioHandle(FILE* handle)

      : handle_(handle) { }

 

  ~ScopedStdioHandle() {

    Close();

  }

 

  void Close() {

    if (handle_) {

      fclose(handle_);

      handle_ = NULL;

    }

  }

 

  FILE* get() const { return handle_; }

 

  FILE* Take() {

    FILE* temp = handle_;

    handle_ = NULL;

    return temp;

  }

 

  void Set(FILE* newhandle) {

    Close();

    handle_ = newhandle;

  }

 

 private:

  FILE* handle_;

 

  DISALLOW_EVIL_CONSTRUCTORS(ScopedStdioHandle);

};

原创粉丝点击