相关疑难解决方法(0)

文件描述符和文件指针之间有什么区别?

我想知道文件描述符和文件指针之间的区别.

此外,在什么情况下你会使用一个而不是另一个?

c file-descriptor file-pointer

106
推荐指数
5
解决办法
8万
查看次数

如何使用FILE*写入内存缓冲区?

有没有办法将内存缓冲区创建为FILE*.在TiXml中它可以将xml打印到FILE*但我似乎无法将其打印到内存缓冲区.

c c++

39
推荐指数
5
解决办法
4万
查看次数

什么是"cerr"和"stderr"?

它们之间有什么区别?它们是如何使用的?谁能指点我的例子?

具体来说,如何在两种情况下"写入"流,以及如何恢复和输出(即屏幕)已写入文本的文本?

另外,"屏幕"输出本身就是一个流吗?也许我不太了解溪流.我知道,这当然也可以保存到文件中.所有这些都会使用fprintf/ fscanf等吗?

c c++ error-handling stderr

31
推荐指数
2
解决办法
5万
查看次数

从std :: fstream检索文件描述符

可能重复:
从std :: fstream获取文件*

我正在研究Linux,文件描述符是这个操作系统的主要模型.

我想知道是否有任何库或任何方法从C++开始检索本机Linux文件描述符std::fstream.

我想过,boost::iostream因为有一个叫做的课,file_descriptor但我明白它的目的与我想要达到的目的不同.

你知道某种方法吗?

c++ fstream file-descriptor

15
推荐指数
1
解决办法
2万
查看次数

将SQLite与std :: iostream一起使用

有人知道一个允许SQLite从中加载数据的包装器std::iostream吗?

更明确一点:

std::fstream dataStream("database.sqlite");
...
sqlite3_open(...something using dataStream...);
Run Code Online (Sandbox Code Playgroud)

我想使用流,因为它们的模块性:能够在仍然从网络下载文件时加载文件,即时解压缩数据等.

注册自己的VFS后,应该可以使用sqlite3_open_v2.经过一个小时的实现(记录错误的)函数,我的第一次尝试让我从SQLite得到一个奇怪的"内存不足"错误,我想我会问这里是否有人知道现有的实现,然后花几个小时调试我的.

c++ sqlite iostream

11
推荐指数
1
解决办法
2603
查看次数

在 C++ 中部分截断流(fstream 或 ofstream)

我正在尝试使用 fstream 部分截断(或缩短)现有文件。我尝试过写一个 EOF 字符,但这似乎没有任何作用。

任何帮助,将不胜感激...

c++ fstream truncate file ofstream

5
推荐指数
1
解决办法
5319
查看次数

如何访问打开文件的文件描述符

有没有办法访问用c ++打开的文件的文件描述符?所以......

 #include <iostream>
 #include <fstream>
 using namespace std;

 int main() {
      ifstream inputFile( "file.txt",ios::in );
      cout << inputFile.fileDesc << endl;//made up call
      return 0;
 }
Run Code Online (Sandbox Code Playgroud)

问题是,ifstreams是否存在类似fileDesc的东西?如果不是我该怎么做呢?

c++ file-descriptor stream filestream

5
推荐指数
1
解决办法
8515
查看次数

我可以使用 FILE* 来初始化 C++ ostream 对象吗?

我可以使用在其他地方打开的吗

FILE* f = ...
Run Code Online (Sandbox Code Playgroud)

初始化某个std::ostream实例的东西?像这样(伪代码):

FILE *f = ...;
std::ostream os;
os./*bind_to_f*/( f );    // HOW?
os << "Hello world" << std::endl;
Run Code Online (Sandbox Code Playgroud)

c++ iostream stream

5
推荐指数
1
解决办法
2196
查看次数

在Linux上植入C++ ifstream(GCC 4.6)

上下文

我正在慢慢地用C++编写一个专门的Web服务器应用程序(使用C 洋葱http服务器库和用于JSON序列化的JSONCPP库,如果这很重要的话).对于带有GCC 4.6编译器的Linux系统(我不关心可移植性)非Linux系统,或4.5之前的GCC或3.0之前的Clang).

我决定保留用户"数据库"(很少有用户,可能只有一两个,所以性能不是一个问题,O(n)访问时间是可以接受的)JSON格式,可能是一个小的JSON数组对象喜欢

 { "_user" : "basile" ;
   "_crypasswd" : "XYZABC123" ; 
   "_email" : "basile@starynkevitch.net" ;
   "firstname" : "Basile" ;
   "lastname" : "Starynkevitch" ;
   "privileges" : "all" ;
 }
Run Code Online (Sandbox Code Playgroud)

使用约定(àla .htpasswd),该_crypasswd字段是crypt(3)用户密码的"加密",由_user名称加密;

我想用Json对象描述用户的原因是我的应用程序可能在描述用户的这些Json对象中添加(而不是替换)一些JSON字段(例如privileges上面).我正在使用JsonCpp作为C++的Json解析库.这个库想要ifstream解析.

所以我正在阅读我的密码文件

extern char* iaca_passwd_path; // the path of the password file
std::ifstream jsinpass(iaca_passwd_path);
Json::Value jpassarr;
Json::Reader reader;
reader.parse(jsinpass,jpassarr,true);
jsinpass.close();
assert (jpassarr.isArray());
for (int ix=0; ix<nbu; ix++) {
  const Json::Value&jcuruser= jpassarr[ix]; …
Run Code Online (Sandbox Code Playgroud)

c++ linux g++ flock

5
推荐指数
1
解决办法
2679
查看次数

运行.exe并重定向stdin并退出

在我生命的大部分时间里,我一直在使用cstdio.现在我想转移到iostream.

假设我有一个名为"foo.cpp"的独立程序,如下所示:

int main(){ // foo.cpp
    int x;
    std::cin >> x;
    std::cout << x + 5 << "\n";
}
Run Code Online (Sandbox Code Playgroud)

在另一个名为"bar.cpp"的程序中,我调用了foo可执行文件.在过去,如果我想将stdin和stdout重定向到一个文件,我会这样使用freopen:

int main(){ // bar.cpp, redirecting stdin and stdout
    freopen("foo.in", "r", stdin); // Suppose "foo.in" contains a single integer "42"
    freopen("foo.out", "w", stdout);

    system("foo.exe"); // "foo.out" will contain "47"
}
Run Code Online (Sandbox Code Playgroud)

现在我想重定向std::cinstd::cout以stringstreams.像这样的东西:

int main(){ // bar.cpp, redirecting cin and cout
    std::istringstream instr("62");
    std::ostringstream outstr;

    std::cin.rdbuf(instr.rdbuf());
    std::cout.rdbuf(outstr.rdbuf());

    system("foo.exe"); // outstr should contain "67" …
Run Code Online (Sandbox Code Playgroud)

c++ redirect c++11

5
推荐指数
1
解决办法
578
查看次数

如何从文件描述符中打开ifstream?

我正在尝试使用rc4通过s3fs对文件实施加密.基本上我需要一个文件描述符,s3fs使用它来提取文件的名称,然后做这件事.那我怎么用c ++做呢?

我没有任何代码可以显示,因为我不知道如何启动它会看起来像:

void foo(int fd){
// something

string temp; 
temp = // result of that somethingthing;
ifstream in;
in.open(temp,ios::binary | ios::in);
}
Run Code Online (Sandbox Code Playgroud)

这甚至可行吗?或者我只是注定要使用系统调用?

c++ file s3fs

2
推荐指数
1
解决办法
3659
查看次数