标签: limits

为什么ARG_MAX没有通过limits.h定义?

在Fedora Core 7上,我正在编写一些依赖的代码ARG_MAX.但是,即使我#include <limits.h>,常数仍未定义.我的调查显示它存在<sys/linux/limits.h>,但这应该可以在Win32/Mac/Linux上移植,所以直接包含它不是一个选项.这里发生了什么?

linux limits

7
推荐指数
1
解决办法
5476
查看次数

如何为用户提供文件存储限制?

我正在使用Rails正在开发一个Web应用程序,并想知道是否有人知道跟踪文件存储限制的好方法?我们希望为用户提供可用于上传文件的特定空间,我们使用回形针在Amazon S3上进行存储.有什么想法吗?谢谢

ruby limits ruby-on-rails file-storage

7
推荐指数
2
解决办法
834
查看次数

如何在ARM汇编程序中使用C定义

如何在ARM汇编程序代码中使用外部定义,如LONG_MIN和LONG_MAX?

假设my_arm.h看起来像这样:

int my_arm(int foo);
Run Code Online (Sandbox Code Playgroud)

假设我有一个my_main.c,如下所示:

...
#include <limits.h>   
#include "my_arm.h"
...
int main (int argc, char *argv[])
{
  int foo=0;
...
  printf("My arm assembler function returns (%d)\n", my_arm(foo));
...
}
Run Code Online (Sandbox Code Playgroud)

而my_arm.s看起来像这样:

  .text
  .align 2
  .global my_arm
  .type   my_arm, %function
my_arm:
    ...
    ADDS r1, r1, r2
    BVS overflow
    ...
overflow: 
    LDR r0, LONG_MAX @ this is probably wrong, how to do it correctly?
    BX lr @ return with max value
Run Code Online (Sandbox Code Playgroud)

倒数第二行,我不知道如何正确加载,我依旧记得在某处读取,我必须在.global中定义LONG_MAX,但找不到工作示例的链接了.

我正在使用arm-linux-gnueabi-gcc 4.3.2进行编译

==================

更新:感谢建议!不幸的是,我仍然遇到语法问题.

首先,我创建了一个小头文件mylimits.h(现在和.S在同一个目录中)

#define MY_LONG_MIN 0x80000000
Run Code Online (Sandbox Code Playgroud)

在my_arm.S我添加了以下内容: …

c assembly limits arm gnu

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

Android 2.2的每个应用程序的最大内存限制是多少?

Android 2.2的每个应用程序的最大内存限制是多少?

android limits

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

您可以在mailto:body参数中放入多少数据?

鉴于我正在创建mailto:超链接.您可以在mailto:body参数中放入多少数据?

这个浏览器依赖吗?

browser mailto limits

7
推荐指数
1
解决办法
422
查看次数

检测某些非数字类型T的std :: numeric :: type <T>的特化

我想检查一个类型是否在std :: numeric_limits中有一个条目.当类型是数组 - (或者可能不是数字?)时,我得到编译器错误.这使我无法根据std :: numeric_limits中是否支持该类型来检测和分支.我很感激任何想要分享的见解.

// the following provokes compiler error on Clang
// Function cannot return array type 'type' (aka 'char [20]')
static_assert(
    ! std::numeric_limits<char[20]>::is_specialized,
    "! std::numeric_limits<char[20]>::is_specialized"
);
// invokes static assert on compile as expected
static_assert(
    std::numeric_limits<char[20]>::is_specialized,
    "std::numeric_limits<char[20]>::is_specialized"
);
Run Code Online (Sandbox Code Playgroud)

c++ limits numeric

7
推荐指数
1
解决办法
160
查看次数

浮点限制

我已经得到了这两个问题,而且我无法正确地解决浮点问题,所以如果有人可以就如何解决这些问题提出一些指示,我将非常感激.

  1. 可以用2s表示的最小和最大数字是什么,用10位尾数和6位指数表示归一化浮点符号?

  2. 使用上述尾数和指数,两个最接近0的值可能是0.想想发生下溢和溢出的地方.

floating-point limits

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

通过模板的无符号int的C++限制

我正在使用模板将整数类型转换为二进制值的字符串表示形式.我使用了以下内容:

template<typename T>
std::string ToBinary(const T& value)
{
    const std::bitset<std::numeric_limits<T>::digits + 1> bs(value);
    const std::string s(bs.to_string());

    return s;
}
Run Code Online (Sandbox Code Playgroud)

它适用于int但不使用unsigned int编译:

unsigned int buffer_u[10];
int buffer_i[10];
...
ToBinary(buffer_i[1]); //compile and works
ToBinary(buffer_u[1]); //doesn't compile -- ambiguous overload
Run Code Online (Sandbox Code Playgroud)

你能解释一下原因吗?

编辑:

是的,我正在使用VS2010

c++ binary templates limits stl

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

Ruby文件句柄管理(打开文件太多)

我在ruby(2.0.0 p39474)中执行非常快速的文件访问,并继续获得异常 Too many open files

看了这个帖子,这里和其他各种来源,我很清楚操作系统限制(设置1024在我的系统上).

执行此文件访问的代码部分是互斥的,并采用以下形式:

File.open( filename, 'w'){|f| Marshal.dump(value, f) }
Run Code Online (Sandbox Code Playgroud)

哪里filename有快速变化,取决于调用该部分的线程.我的理解是这个表单在块之后放弃了它的文件句柄.

我可以验证File打开的对象数量ObjectSpace.each_object(File).这报告内存中最多有100个驻留,但只有一个是开放的,正如预期的那样.

此外,异常本身在File报告的对象只有10-40个时抛出ObjectSpace.此外,手动垃圾收集无法改善任何这些计数,因为通过插入sleep调用来减慢我的脚本速度.

我的问题是:

  • 我是否从根本上误解了操作系统限制的性质 - 它是否涵盖了流程的整个生命周期?
    • 如果是这样,Web服务器如何在访问ulimit -n文件后避免崩溃?
    • ruby是否在其对象系统之外保留其文件句柄,或者内核在计算"并发"访问时速度非常慢?

编辑20130417: strace表示ruby不会将所有数据写入文件,在执行此操作之前返回并释放互斥锁.因此,文件处理堆栈直到操作系统限制.

为了解决这个问题,我使用了syswrite/ sysread,同步模式,flush之前调用过close.这些方法都不起作用.

我的问题因此被修改为: 为什么ruby无法关闭其文件句柄,我怎么能强迫它这样做呢?

ruby file-io limits

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

bash输出重定向限制?

我尝试在bash中连接大文件(一些GB).我试过了

    cat file1 file2 file3 > result
Run Code Online (Sandbox Code Playgroud)

它没有用

    cat file1 file2 file3 >> result
Run Code Online (Sandbox Code Playgroud)

工作.在这两种情况下,文件结果之前都不存在,我的期望是,两个命令都给出相同的结果.

在同一个系统上,我用小文件(只是一些字节)尝试了同样的事情,两个命令产生相同的输出.我试图找到一些解释(例如这里),但找不到任何......

所以,我知道如何解决我的问题,但我仍然感到困惑.有人能够提供线索吗?

bash redirect limits output

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