From: akr@... Date: 2014-10-07T12:53:07+00:00 Subject: [ruby-core:65469] [ruby-trunk - Bug #10336] [Rejected] limit of number of arguments passed to system Issue #10336 has been updated by Akira Tanaka. Status changed from Open to Rejected POSIX systems can have a limitation on the size of arguments. Use spawn() to raise the execption on the error of execve(2): ``` % ruby -v -retc -e 's = "true " + "a" * Etc.sysconf(Etc::SC_ARG_MAX); p s.length; Process.wait spawn(s)' ruby 2.2.0dev (2014-10-05 trunk 47803) [x86_64-linux] 2097157 -e:1:in `spawn': Argument list too long - true (Errno::E2BIG) from -e:1:in `
' ``` ---------------------------------------- Bug #10336: limit of number of arguments passed to system https://bugs.ruby-lang.org/issues/10336#change-49249 * Author: Victor Pereira * Status: Rejected * Priority: Normal * Assignee: * Category: core * Target version: * ruby -v: ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- The following code snipped stops to work with argument bigger than 2274: ~~~ files_to_be_p_as_a = Dir[File.join(".", '**', '*.c')] files_to_be_p_as_a.size # => 43152 system("ls #{files_to_be_p_as_a}") # => nil system("ls #{files_to_be_p_as_a[0..2273]}") ... # list of files system("ls #{files_to_be_p_as_a[0..2274]}" # => nil ~~~ is there any limitation on Kernel system or is it something in my local environment? -- https://bugs.ruby-lang.org/