08-31-2017
You have not given any reason why _POSIX_ARG_MAX should be changed in the standards. Why are you trying to restrict your code to the smallest argument list size guaranteed to be available on every system instead of using the resources that your system tells you are available on your system? There is no reason to restrict yourself to the value of _POSIX_ARG_MAX in <limits.h>. Just restrict yourself to the value of ARG_MAX in <limits.h> on your system (which you have shown us is 2093093 bytes, approximately 2Mb - 4Kb). Or, assuming that there aren't huge variations in the size of each argument, just use 250k arguments on 2 invocations instead of 175 arguments on a little under 3000 invocations.
Or, if you're using shell instead of C to invoke commands with varying numbers of arguments based on the limits of your system, find ... -exec utility initial_arg... {} + and xargs are perfectly capable of performing these calculations without your script needing to care about the limits.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
What is posix? What is the relation between Posix, Unix and linux? (1 Reply)
Discussion started by: darbarilal
1 Replies
2. Programming
can somebody explain about the ANSI C vs POSIX. say i was using open and fopen, i know that open is POSIX, and fopen is ANSI C. i read that that POSIX is a system call and ANSI C is like a standard library function. wouldn't the fopen function has to call on open function anyway to open any kind... (2 Replies)
Discussion started by: bb00y
2 Replies
3. Programming
Please,does anybody can give me any general info about unix(posix) ? (1 Reply)
Discussion started by: Haris Astreos
1 Replies
4. UNIX for Dummies Questions & Answers
how to read POSIX? poe six or not? (3 Replies)
Discussion started by: robin.zhu
3 Replies
5. Programming
Hello !
Let's supose I have a main function in C , and two POSIX threads. I give you an example down :
int main() {
int something;
char else;
void *FirstThread();
void *SecondThread();
..
<start those two pthreads ..>
return 0;}
void *FirstThread() { ... }
void *SecondThread()... (2 Replies)
Discussion started by: !_30
2 Replies
6. Programming
HI,
When i am configuring php in SUN Solaris. I am getting the below error.
configure: error: Your system seems to lack POSIX threads.
Do i need to install POSIX? If so can somebody let me know where can i download POSIX for Solaris 8?
Thanks, (2 Replies)
Discussion started by: Krrishv
2 Replies
7. UNIX for Advanced & Expert Users
Hi,
consider the code below:
#include <stdio.h>
.
.
struct myStruct
{
char *message ;
int id;
};
.
.
.
void *thread_function( void *ptr );
nt main()
{
pthread_t thread1, thread2 ,thread3 ;
struct myStruct nico1; (2 Replies)
Discussion started by: Behnaz
2 Replies
8. UNIX for Advanced & Expert Users
Hi ,
I am using UNIX network programming Vol1 (by R Stevens) book to learn about IPC.
I would be using HP-UX,Solaris and Linux at my work.
I have sections for POSIX and for System V in that book.
I am quite confused in indentifying those OSs as POSIX or SYstem V.
Can anyone please... (1 Reply)
Discussion started by: kumaran_5555
1 Replies
9. Programming
I want to create a program that creates 2 child process, and each of them creates 2 threads, and each thread prints its thread id. I0ve allread done that the outuput isn't the outuput i want.
When a run the following comand "$./a.out | sort -u | wc -l" I have the folowing output
2
$:
It should... (3 Replies)
Discussion started by: pharaoh
3 Replies
10. OS X (Apple)
Thanks to all you guys about posix compliance I have learnt an enormous amount over the last few days.
I have written a program that is an Egg Timer with simple animation.
I now realise how sophisticated 'bash' is compared to full posix compliance.
The code below has passed all of the tests from... (11 Replies)
Discussion started by: wisecracker
11 Replies
XARGS(1) General Commands Manual XARGS(1)
NAME
xargs - construct argument list(s) and execute utility
SYNOPSIS
xargs [ -t ][[ -x ] -n number ][ -s size ][ utility [ arguments... ]]
DESCRIPTION
The xargs utility reads space, tab, newline and end-of-file delimited arguments from the standard input and executes the specified utility
with them as arguments.
The utility and any arguments specified on the command line are given to the utility upon each invocation, followed by some number of the
arguments read from standard input. The utility is repeatedly executed until standard input is exhausted.
Spaces, tabs and newlines may be embedded in arguments using single (`` ' '') or double (``"'') quotes or backslashes (``''). Single
quotes escape all non-single quote characters, excluding newlines, up to the matching single quote. Double quotes escape all non-double
quote characters, excluding newlines, up to the matching double quote. Any single character, including newlines, may be escaped by a back-
slash.
The options are as follows:
-n number Set the maximum number of arguments taken from standard input for each invocation of the utility. An invocation of utility will
use less than number standard input arguments if the number of bytes accumulated (see the s option) exceeds the specified size or
there are fewer than number arguments remaining for the last invocation of utility. The current default value for number is
5000.
-s size Set the maximum number of bytes for the command line length provided to utility. The sum of the length of the utility name and
the arguments passed to utility (including /dev/null terminators) will be less than or equal to this number. The current default
value for size is ARG_MAX - 2048.
-t Echo the command to be executed to standard error immediately before it is executed.
-x Force xargs to terminate immediately if a command line containing number arguments will not fit in the specified (or default)
command line length.
If no utility is specified, echo(1) is used.
Undefined behavior may occur if utility reads from the standard input.
The xargs utility exits immediately (without processing any further input) if a command line cannot be assembled, utility cannot be
invoked, an invocation of the utility is terminated by a signal or an invocation of the utility exits with a value of 255.
The xargs utility exits with a value of 0 if no error occurs. If utility cannot be invoked, xargs exits with a value of 127. If any other
error occurs, xargs exits with a value of 1.
SEE ALSO
echo(1), find(1)
STANDARDS
The xargs utility is expected to be IEEE Std 1003.2("POSIX") compliant.
June 6, 1993 XARGS(1)