问题列表 - 第7792页

64位大型mallocs

malloc()失败的原因是什么,尤其是64位?

我的具体问题是试图在64位系统上使用巨大的10GB RAM.该机器具有12GB的RAM和32 GB的交换空间.是的,malloc极端,但为什么会出现问题呢?这是在Windows XP64中同时包含Intel和MSFT编译器.malloc有时成功,有时不成功,约50%.8GB malloc总是工作,20GB malloc总是失败.如果malloc失败,重复请求将不起作用,除非我退出该过程并再次开始一个新进程(这将成功获得50%的注射).没有其他大型应用程序正在运行 它会在重新启动后立即发生.

我可以想象如果你已经用完了32位(或31位)可用的地址空间,那么malloc会失败32位,这样就没有足够大的地址范围可以分配给你的请求了.

我还可以想象,如果你已经用完物理内存你的硬盘交换空间,malloc会失败.对我来说情况并非如此.

但为什么malloc会失败呢?我想不出其他原因.

我对一般malloc问题比我的具体例子更感兴趣,无论如何我都可能用内存映射文件替换它.失败的malloc()只是一个难题而不是其他任何东西......想要了解你的工具而不是对基础知识感到惊讶.

memory windows malloc 64-bit virtual-memory

17
推荐指数
3
解决办法
1万
查看次数

如何监禁linux用户

是否有类似于chroot的东西,但对于用户?

我们即将授予客户端访问服务器的权限,并希望他们只查看我们允许的目录.

linux chroot jail

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

std :: map无法处理多态?

在c ++中使用std :: map时,是否可以将继承的类作为它们的"基类"存储在地图中,并且仍然可以调用它们的重载方法?看这个例子:

#include <iostream>
#include <map>
class Base
{
    public:
    virtual void Foo() { std::cout << "1"; }
};

class Child : public Base
{
    public:
    void Foo() { std::cout << "2"; }
};

int main (int argc, char * const argv[])
{
    std::map<std:string, Base> Storage;
    Storage["rawr"]=Child();
    Storage["rawr"].Foo();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

以下代码写入"1".以某种方式告诉我,当你使用std :: map时,多态性不起作用.

c++

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

两个日期之间的MySQL周计算

几天来我一直坚持这个问题,就像计算两天之间的周数一样,例如:

Select @Days = (datediff( week, @pdtFromDate, @pdtToDate) - 1) * 5
Run Code Online (Sandbox Code Playgroud)

这将输出返回为257.

我需要将此脚本转换为MySQL.

mysql

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

如何将STL算法与指针向量一起使用

我有一个不是容器所有的指针向量.如何在指针的目标上使用算法.我尝试使用boost的ptr_vector,但它会在超出范围时尝试删除指针.

以下是一些需要工作的代码:

vector<int*> myValues;
// ... myValues is populated
bool consistent = count(myValues.begin(), myValues.end(), myValues.front()) == myValues.size();
auto v = consistent ? myValues.front() : accumulate(myValues.begin(), myValues.end(), 0) / myValues.size();
fill(myValues.begin(), myValues.end(), v);
// etc.
Run Code Online (Sandbox Code Playgroud)

我意识到for循环可以工作,但这发生在一堆地方,所以某种一元的适配器?我找不到一个.提前致谢!

c++ lambda boost stl c++11

12
推荐指数
1
解决办法
1813
查看次数

在linux/unix下是否有相当于WinAPI的MAX_PATH?

如果我想分配一个char数组(在C中),保证它足够大以容纳任何有效的绝对路径+文件名,它需要多大.

在Win32上,有MAX_PATH定义.Unix/linux的等价物是什么?

c c++ unix linux posix

61
推荐指数
5
解决办法
6万
查看次数

如何在Windows NT 4中运行VBScript?

我有一个VBScript,我计划将其每天在许多Windows服务器上运行。在Windows 2000和2003中,该脚本运行良好,因为两个操作系统都具有csript.exe。但是,在Windows NT 4中,它似乎没有此可执行文件。

是否有其他选择/选项可以在Windows NT 4中运行VBScript?

vbscript nt4 wsh

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

如何检测iphone处于静音模式

我正在开发一个应用程序.因为我想通过编码检测"iPhone是否处于静音模式?".我正在使用Objective-C的可可开发它.

如果有人知道它善意回复.

iphone audio cocoa-touch objective-c ios

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

使用Clozure Common Lisp编译二进制文件

鉴于如下的简单程序,您将如何:

  1. 将其编译为要由实现加载的单独图像文件,以及您将使用哪些命令行参数加载它?

  2. 将其编译为可以按原样加载和运行的独立二进制文件.

    注意:我在保存应用程序时尝试添加":prepend-kernel t",以便抛出跟随错误.

    Error: value NIL is not of the
    expected type REAL. While executing: 
    CCL::<-2, in process Initial(0).
    
    Run Code Online (Sandbox Code Playgroud)
  3. 你会如何压制欢迎信息?

    该程序

    (defun main ()
      (format t "This is the program.")0)
    
    Run Code Online (Sandbox Code Playgroud)

编辑

讨厌回答我自己的一部分问题,但我发现了它.

加载函数后,键入以下内容进行编译:

(ccl:save-application "app")
Run Code Online (Sandbox Code Playgroud)

这会创建一个图像文件.通过将其传递给实现类型来加载它(注意:'ccl'二进制文件在我的系统路径中);

ccl -I app
Run Code Online (Sandbox Code Playgroud)

要运行顶级函数,请将其作为参数传递

ccl -I app --eval (main)
Run Code Online (Sandbox Code Playgroud)

executable compilation common-lisp

24
推荐指数
1
解决办法
4861
查看次数

C语言中的契约式设计,用于自动定理证明

我正在研究几个C项目,我想使用自动定理证明来验证代码.理想情况下,我只想使用ATP来验证函数契约.C/gcc或外部软件/软件包/等中是否有任何功能可以实现按合同样式编码?

如果没有那么那只是激励我自己开始.

我对此的引用类似于Spec#或来自MSR的Sing#,但我是一个开源人员,我正在寻找开源解决方案.

c automated-tests design-by-contract

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