小编Adr*_*ala的帖子

为什么UNICODE和_UNICODE?

我一直在看Visual Studio生成的命令行,对于我的一个项目,它定义了两个符号:_UNICODEUNICODE.现在,如果我理解这个相当旧的文档这个文档,那么这个_UNICODE符号是一个VC++的东西,它会导致某些标准函数wchar_t而不是char它们的接口.

UNICODE没有下划线意味着什么呢?

unicode visual-c++

36
推荐指数
3
解决办法
2万
查看次数

fprintf是否在引擎盖下使用malloc()?

我想要一个最小的o-damn-malloc-just-failed处理程序,它将一些信息写入文件(可能只是标准错误).我更喜欢使用fprintf()而不是write(),但如果fprintf()本身尝试使用malloc(),则会失败.

是否有一些保证,无论是在C标准,还是只是在glibc,fprintf不会这样做?

c malloc printf stdio

17
推荐指数
2
解决办法
7027
查看次数

MongoDB及其驱动程序可以保留文档元素的顺序

我正在考虑使用MongoDB来存储包含键/值对列表的文档.存储它的安全但丑陋和臃肿的方式是

[ ['k1' : 'v1'] , ['k2' : 'v2'],  ...]
Run Code Online (Sandbox Code Playgroud)

但是文档元素本质上是在底层BSON数据结构中排序的,因此原则上:

{k1 : 'v1', 
 k2 : 'v2',  ...}
Run Code Online (Sandbox Code Playgroud)

应该够了.但是我希望大多数语言绑定会将这些解释为关联数组,因此可能会对排序进行加扰.所以我需要知道的是:

  • MongoDB本身是否承诺保留第二种形式的项目排序.
  • 语言绑定是否有一些API可以提取它的有序形式 - 即使通常的"方便"API返回一个关联数组.

我最感兴趣的是Javascript和PHP,但我也想了解其他语言.感谢任何帮助,或者只是链接到我可以进入RTM的一些文档.

javascript php json mongodb bson

13
推荐指数
2
解决办法
4234
查看次数

stdio总是设置errno吗?

stdio流遇到错误(但不是EOF)时,将设置流的错误指示符,以便ferror()返回非零值.我一直认为可以获得更多信息errno.但我怎么知道这个?

某些功能的文档[例如man fopen在Linux下]说明errno也将设置.但是man fgets根本没有提到errno.glibc信息页面令人放心:

除了设置与所述流相关联的错误指示符,该上流进行操作的功能也以同样的方式作为上文件描述符操作相应的低级别的功能设置`错误号".

但我不知道这种保证有多强.它是否需要C标准?Visual C/C++会发生什么?

c c++ error-handling stdio errno

10
推荐指数
1
解决办法
1034
查看次数

什么时候使用C中的指针指针来输入双关语是合法的?

在C程序中,我有一个结构

typedef struct {
    void *payload; // opaque, real type known to callbacks

         ... some stuff ...
} MiddleMan;
Run Code Online (Sandbox Code Playgroud)

为了创建一些类型安全的贴面,我可能会创建getter和setter

CbData *get_cb_data(const MiddleMan *mm){ return mm->payload; }   
void set_cb_data(MiddleMan *mm, CbData *cbd){ mm->payload = cbd; }
Run Code Online (Sandbox Code Playgroud)

或者我可以尝试用一个基于指针的访问器来完成它

CbData **cb_data(MiddleMan *mm){return (CbData**)&mm->payload;}
Run Code Online (Sandbox Code Playgroud)

现在第二个解决方案看起来比第一个解决方案更加笨拙,并且它还将用户限制为非const mm即使他们只想阅读.但我的问题是它是否合法C?

我相当肯定你可以在任何void*大小和格式相同的架构上逃脱它CbData*.但是,任何人都可以明确推断为什么这一般(或不是)有效吗?

c pointers type-conversion

6
推荐指数
1
解决办法
133
查看次数

为什么os.normpath没有崩溃领先的双斜线?

在Unix下,os.path.normpath将多个斜杠折叠为单个斜杠,除非出现两个斜杠,即路径的起点.为什么例外?

为了说明,我得到以下转换:

//double/slash/stays -> //double/slash/stays
/double/slash//gone// -> /double/slash/gone/
double//slash//gone/ -> double/slash/gone
///triple/slash/gone -> /triple/slash/gone
////quad/slash/gone -> /quad/slash/gone
Run Code Online (Sandbox Code Playgroud)

这对我来说很奇怪.我可以模糊地想象这对SMB安装或URL有用,但我不认为我关心这些.Python的行为是否有任何隐藏的智慧,或者我应该贬低前导//我自己?

[更新] 鉴于下面的答案,看起来最好不要崩溃//,而是要么只是接受它,要么将其视为错误.

python filepath

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

为什么XmlDocument.Load(String)似乎想要读写访问?

根据MSDN,.NET XmlDocument.Load(String)方法需要对底层文件的访问权.例外列表说

UnauthorizedAccessException :  filename specified a file that is read-only....
Run Code Online (Sandbox Code Playgroud)

我的问题归结为

  • 是否需要读写访问,或者这仅仅是文档错误?
  • 这是否意味着文件在对象的生命周期内保持打开状态?
  • 这是否意味着对XmlDocument及其子节点的修改可能导致对磁盘上文件的实时修改?即使没有明确的保存.

.net c# xml

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

What is the relationship between a .NET assembly and CPU architecture?

What is the relationship between a .NET assembly and "bitness" or properly speaking, CPU architecture? I thought that .NET programs are compiled into CIL (bytecode) and that they might end up running in different architectures, and will be just-in-time compiled automatically. Thus there should be no "bitness" to a .NET assembly.

But the real world doesn't seem to be so simple. I test programs on a 64-bit machine and frequently run into weird compatibility issues between, say, my program and …

.net 32bit-64bit visual-studio

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

在c99中使用__thread

我想使用__thread存储类将一些变量定义为特定于线程的.但是三个问题让我犹豫不决:

  1. 这是c99的标准配置吗?或者更重要的是,编译器支持有多好?
  2. 变量是否会在每个线程中初始化?
  3. 非多线程程序是否将它们视为普通的全局变量?

c multithreading c99

4
推荐指数
1
解决办法
2808
查看次数

C#binary-coded-decimal中的"十进制"类型是什么?

我想用C#处理十进制货币(EUR)的价格而不用担心舍入错误而不用我自己的方式进行十进制算术. decimal类型的C#参考 说明

与浮点类型相比,十进制类型具有更高的精度和更小的范围,这使其适用于财务和货币计算.

什么?

我不会对精确度有所了解,我只想要七个sig-figs.但我想知道这5.31 EUR是一个确切的价值.A,二进制编码的十进制类型是理想的.所以我的问题是C#是否decimal是那种类型.

c# floating-point numbers decimal

4
推荐指数
1
解决办法
1189
查看次数

在PHP中区分GET和POST

我正在创建一个网站,并已配置我的Web服务器以将任何动态内容请求路由到index.php.在这个网站上,GET其他一些请求是POST.我该如何区分它们?相关问题是

  • POST请求期间$ _GET变量的值是多少?
  • GET请求期间$ _POST变量的值是多少?

php cgi

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