⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileutil.cpp

📁 伯克利做的SFTP安全文件传输协议
💻 CPP
字号:
// fileutil.cc// code for fileutil.h// copyright SafeTP Development Group, Inc., 2000  Terms of use are as specified in license.txt#include <stdio.h>#include "fileutil.h"      // file module#include "exc.h"MemFileSource::MemFileSource(DataBlock const &obj)  : storage(obj){  // these are ptrs instead of embedded because  // you can't rely in initialization order of  // members#ifdef WIN32  // filesystem hack  tmpnam(fname);  FILE* fp = fopen(fname,"wb");  fwrite((char*)storage.getData(), 1, storage.getDataLen(), fp);  fclose(fp);  fsource = new FileSource(fname, true /*pumpAndClose*/);#else   stream = new istrstream((char*)storage.getData(), storage.getDataLen());  fsource = new FileSource(*stream, true /*pumpAndClose*/);#endif}MemFileSource::~MemFileSource(){  delete fsource;#ifdef WIN32 // filesystem hack  remove(fname);#else  delete stream;#endif}MemFileSink::MemFileSink(int maxlen)  : storage(maxlen){#ifdef WIN32 // filesystem hack  tmpnam(fname);  fsink = new FileSink(fname);#else  stream = new ostrstream((char*)storage.getData(), maxlen);  fsink = new FileSink(*stream);#endif}MemFileSink::~MemFileSink(){  delete fsink;#ifdef WIN32 // filesystem hack  remove(fname);#else  delete stream;#endif}DataBlock const &MemFileSink::getData(){#ifdef WIN32 // filesystem hack  fsink->InputFinished(); // flush to disk  FILE* fp = fopen(fname,"rb");  int len = fread((char*)storage.getData(), 1, storage.getAllocated(), fp);  storage.setDataLen(len);  fclose(fp);#else  storage.setDataLen(stream->pcount());#endif  return storage;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -