草庐IT

files_struct

全部标签

c++ - 如何找到 `FILE*`的相对地址

要了解我为什么要做下面描述的事情,您可以阅读this题。简而言之:由于某种原因,库代码请求了一个未由相应类定义的函数,我的解决方案:通过我的自定义类扩展类,编写请求的函数并使用我的类。我有一个函数void*advance(uint64_tnbytes)会被一些库代码调用为memcpy(object.advance(nbytes),source,nbytes)。从advance()内部,我可以访问一个FILE*应该存储结果的地方,所以据我所知,我必须返回一个指针,该指针将具有相对地址到整个内存,但在FILE*中,以便库代码可以适本地编写。到目前为止我已经尝试过:void*advance(

c++ - sizeof pragma packed bitfield struct 数组

我将VisualStudio2013用于x64系统。我有以下结构:#pragmapack(1)structTimeStruct{intmilliseconds:10;BYTEseconds:6;BYTEminutes:6;BYTEhour:5;BYTEday:5;};#pragmapack()和一个数组:TimeStructstArray[10];当我使用sizeof(stArray);时,我得到80而不是40。我需要知道问题是编译器没有正确打包还是sizeof没有考虑位域的实际大小。谢谢 最佳答案 参见WhatisVC++doin

c++ - 为什么使用 extern struct {} foo,会触发无效的 fPIC required 错误消息?

我正在构建一个共享库,它具有如下所示的相应代码和编译规则://x.Cstruct{shortlen;chars[32700];}foo;//u.Cexternstruct{shortlen;chars[32700];}foo;voidblah(void){foo.s[0]=0;}$CXX-cx.C-fPIC$CXX-cu.C-fPIC$CXX-shared-ox.so.1-Wl,-soname,x.so.1x.ou.o此代码使用intel(v13-v16)编译器和clang编译器(v3.6)进行编译和链接,但使用g++(版本4.9.2)时出现链接错误:u.o:relocationR_X

c++ - 为什么 leveldb 中的 table 和 tablebuilder 使用 struct rep?

最近看了leveldb的源码,对table和table_builder源码中的repstruct搞混了。因为我们可以直接将成员变量直接存储在类Table和类TableBuilder中。但是为什么作者做了一个structRep,把成员变量存放在structRep中。我可以想出一个原因,因为table和table_builder会暴露给用户,所以我们想隐藏实现。这样对吗?还是我错过了其他一些想法,或者是某种设计模式?谢谢 最佳答案 这是从table.h中提取的代码片段,来自table_builder.h的代码片段会显示类似的设计clas

c++ - 为什么我不能在 struct 中初始化 char 数组

我尝试通过以下方式在结构声明中初始化一个char数组。但它无法编译并显示错误消息。请告诉我为什么它无法编译。#includestructA{constcharvalue_in_struct[]="a";//thislinegivesmeaerrormessage.};voidt(void){constcharvalue[]="a";//thislinewasokatcompilingstd::cout我从gcc收到以下错误消息。../static_constexpr_array.hpp:16:33:error:initializer-stringforarrayofcharsistoo

C++ 在 ‘value_type’ 中没有名为 ‘struct std::iterator_traits<int>' 的类型

你好。我正在尝试运行以下代码(仅用于培训目的):#include#includetemplate>classkont>typenamestd::iterator_traits::value_typefoo_test(typenamekont::iteratorb){return*b;}templatetypenamestd::iterator_traits::value_typeminimum(Iterb,Itere){Iterm=b;/*CODE*/return*m;}intmain(void){std::listx;x.push_back(10);x.push_back(100);

c++ - 我可以将 BOOST_FUSION_ADAPT_STRUCT 与继承的东西一起使用吗?

假设我有structcat{inttail;inthead;};structbird{intwing;intbursa;};如果我这样做...structwat:publiccat,publicbird{};BOOST_FUSION_ADAPT_STRUCT(cat,tail,head)BOOST_FUSION_ADAPT_STRUCT(bird,wing,bursa)BOOST_FUSION_ADAPT_STRUCT(wat,wat::cat,wat::bird)...我无法获得构建,但如果我像下面这样显式引用继承的对象,它是完全有效的。#include#includenamespa

c++ - boost::interprocess : cout a string variable when iterating through a map that references an object from a struct

我正在使用boost::interprocess在进程之间共享对象。我有两个文件,一个生成结构对象并将该对象传递到具有int索引的映射中的“server.cpp”;和一个“client.cpp”文件,它检索内存数据并遍历数据,输出到控制台。结构看起来像这样:structmydatao{stringMY_STRING;intMY_INT;};和对象:mydatao;o.MY_STRING="hello";o.MY_INT=45;服务器和客户端都能正确编译。但是出于某种原因,如果我尝试访问客户端中的字符串而不是float或整数,客户端可执行文件会抛出段错误。例如下面的second.MY_I

【LaTeX 问题解决方案】I couldn‘t open file name `.aux‘

最近用vscode的latex插件编译论文的时候发现,编译bibtex时总会报错:Icouldn’topenfilename“.aux”。但是在编译xelatex时发现已经产生了一个aux文件,那么为什么latex插件无法找到aux文件呢?经过一番摸索,我发现问题出现在设置文件中。"latex-workshop.latex.clean.fileTypes":[//"*.aux","*.bbl","*.blg","*.idx","*.ind","*.lof","*.lot","*.out","*.toc","*.acn","*.acr","*.alg","*.glg","*.glo","*.gl

c++ - Win32 : Monitoring for files being created or changed

1)如何使用FindFirstChangeNotification/FindNextChangeNotification+ReadDirectoryChanges来检测正在创建或删除的某些文件?2)FILE_NOTIFY_CHANGE_LAST_WRITE是否是文件更改的可靠指标?应用程序:我有一个明确的文件列表,这些文件可能位于不同的文件夹中。显示内容取决于lsit中实际存在的第一个文件。为此,我想添加一个自动刷新机制。因此我需要检测正在创建的“更重要的”文件,当前文件是否被更改或删除。列表不长(可能有十几个文件),所以我可以轮询这些文件,但对于某些应用程序,轮询间隔应该是50..8