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

📄 upload.cpp

📁 Sector is a system infrastructure software that provides functionality for distributed data storage,
💻 CPP
字号:
#include <fstream>#include <fsclient.h>#include <fcntl.h>#include <stdio.h>#include <unistd.h>#include <sys/ioctl.h>#include <termios.h>#include <string.h>#include <errno.h>#include <iostream>using namespace std;using namespace cb;int upload(const char* file, const char* dst = NULL){   timeval t1, t2;   gettimeofday(&t1, 0);   ifstream ifs(file);   ifs.seekg(0, ios::end);   long long int size = ifs.tellg();   ifs.seekg(0);   cout << "uploading " << file << " of " << size << " bytes" << endl;   File* fh = Sector::createFileHandle();   if (NULL == fh)      return -1;   char* rname;   if (NULL != dst)   {      rname = (char*)dst;   }   else   {      rname = (char*)file;      for (int i = strlen(file); i >= 0; -- i)      {         if ('/' == file[i])         {            rname = (char*)file + i + 1;            break;         }      }   }   char cert[1024];   cert[0] = '\0';   if (fh->open(rname, 2, cert) < 0)   {      cout << "ERROR: unable to connect to server." << endl;      return -1;   }   if (0 != strlen(cert))   {      cout << "file owner certificate: " << cert << endl;      ofstream ofs((string(rname) + ".cert").c_str());      ofs << cert << endl;      ofs.close();   }   bool finish = true;   if (fh->upload(file) < 0)      finish = false;   fh->close();   Sector::releaseFileHandle(fh);   if (finish)   {      gettimeofday(&t2, 0);      float throughput = size * 8.0 / 1000000.0 / ((t2.tv_sec - t1.tv_sec) + (t2.tv_usec - t1.tv_usec) / 1000000.0);      cout << "Uploading accomplished! " << "AVG speed " << throughput << " Mb/s." << endl << endl ;   }   else      cout << "Uploading failed! Please retry. " << endl << endl;   return 1;}int main(int argc, char** argv){   if ((4 != argc) && (5 != argc))   {      cout << "usage: upload <ip> <port> <src file> [dst file]" << endl;      return 0;   }   Sector::init(argv[1], atoi(argv[2]));   if (5 == argc)      upload(argv[3], argv[4]);   else      upload(argv[3]);   Sector::close();   return 1;}

⌨️ 快捷键说明

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