linux堆大小限制,linux - 提高命令行参数字符串/大小限制(ARG_MAX)Mac OSX - 堆栈内存溢出...

我有一个节点脚本,我将大型json流传递为命令行arg。 值得注意的是,我正在运行Mac OSX High Sierra

由于此错误,脚本无法运行:

-bash: /usr/local/bin/node: Argument list too long

我试图在配置文件/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/syslimits.h提高这些限制

这是文件的一部分,其中我将ARG_MAX大小从(256 * 1024)增大了,并添加了MAX_ARG_STRLEN配置。

#define ARG_MAX (512 * 1024) /* max bytes for an exec function */

#define MAX_ARG_STRLEN (PAGE_SIZE * 64)

#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)

#define CHILD_MAX 266 /* max simultaneous processes */

#define GID_MAX 2147483647U /* max value for a gid_t (2^31-2) */

#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */

#define LINK_MAX 32767 /* max file link count */

#define MAX_CANON 1024 /* max bytes in term canon input line */

#define MAX_INPUT 1024 /* max bytes in terminal input */

#define NAME_MAX 255 /* max bytes in a file name */

#define NGROUPS_MAX 16 /* max supplemental group id's */

#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)

#define UID_MAX 2147483647U /* max value for a uid_t (2^31-2) */

#define OPEN_MAX 10240 /* max open files per process - todo, make a config option? */

#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */

#define PATH_MAX 1024 /* max bytes in pathname */

#define PIPE_BUF 512 /* max bytes for atomic pipe writes */

#define BC_BASE_MAX 99 /* max ibase/obase values in bc(1) */

#define BC_DIM_MAX 2048 /* max array elements in bc(1) */

#define BC_SCALE_MAX 99 /* max scale value in bc(1) */

#define BC_STRING_MAX 1000 /* max const string length in bc(1) */

#define CHARCLASS_NAME_MAX 14 /* max character class name size */

#define COLL_WEIGHTS_MAX 2 /* max weights for order keyword */

#define EQUIV_CLASS_MAX 2

#define EXPR_NEST_MAX 32 /* max expressions nested in expr(1) */

#define LINE_MAX 2048 /* max bytes in an input line */

#define RE_DUP_MAX 255 /* max RE's in interval notation */

#if __DARWIN_UNIX03

#define NZERO 20 /* default priority [XSI] */

/* = ((PRIO_MAX - PRIO_MIN) / 2) + 1 */

/* range: 0 - 39 [(2 * NZERO) - 1] */

/* 0 is not actually used */

#else /* !__DARWIN_UNIX03 */

#define NZERO 0 /* default priority */

/* range: -20 - 20 */

/* (PRIO_MIN - PRIO_MAX) */

#endif /* __DARWIN_UNIX03 */

#endif /* !_ANSI_SOURCE */

#endif /* !_SYS_SYSLIMITS_H_ */

这些更改之后,我的包含330,000字符的文件仍然失败。 运行节点脚本时文件为300kb 。

感谢您的专业知识! 我不确定这是由字符串大小或arg大小的溢出引起的(有什么区别?)两种方式都没有找到一种使之起作用的方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值