Question about the system() function in C


 
Thread Tools Search this Thread
Top Forums Programming Question about the system() function in C
# 1  
Old 11-06-2008
Question about the system() function in C

Hello all !

Could someone throw some light on whether there's a limit to the number of characters contained in the command string that is passed to the system() call in C.

Is it OS dependent? If yes, what are the limits for each?

Thanks.
# 2  
Old 11-06-2008
The answer in bytes comes from:
Code:
getconf ARG_MAX

it is system dependent

Edit:
Note that ARG_MAX also counts the number of bytes used in environmental variables. So it is argument bytes + env bytes

Last edited by jim mcnamara; 11-06-2008 at 08:35 AM..
# 3  
Old 11-14-2008
If the maximum size is even a concern, then you're passing too many arguments. Smilie On my system it is 64K but could be far less in other places. Could this data be passed through a pipe instead, or be split across multiple system() calls?
# 4  
Old 11-14-2008
Corona's point is well taken. One point to add:
Code:
getconf _POSIX_ARG_MAX
4096


So if POSIX mode is taken as a maximum to be usable "everywhere" then we do not have to worry about excessive arguments. See your limits.h file, or sysconf() man page.

A good solution might be to write a script on the fly, then call system(), popen() or even fork()/exec() to run your text - commands string. The point being that a "universal" accepted lowest limit is pretty small, especially if you factor in ENV variables.
# 5  
Old 11-23-2008
if your application is command prompt based, you can always write a script and call that script in system function..

here is an example which may help.. i used it for an application called gnuplot..

system("gnuplot.exe script_name");

script_name is the script that contains all the commands, in my case all the commands used for plotting..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

System function in awk

Hello Friends, I have written a script like below, I aimed to move some CDR files (call data record) whose the last field is "1" (NF=1 ) from a spesific directory to a new directory Field Seperator is pipe. If the directory does not exitst i should create it. I will give the script two... (5 Replies)
Discussion started by: EAGL€
5 Replies

2. Shell Programming and Scripting

Help using SYSTEM function in NAWK

I am scanning a file (line by line) for format errors. A line could have multiple errors. Each field in the line is evaluated for errors and sent, along w/ any error messages, to a temporary file. Finally, if any errors were detected, this temporary file is then appended to the errorFile. The... (4 Replies)
Discussion started by: aschera
4 Replies

3. UNIX for Dummies Questions & Answers

Using system function in C

Hi Guys , I want to use system function in C to do the following work. cp <file1> <file2> and then ><file1> e,g cp \var\log\cpm_cpmd_1.log.1 \var\log\cpm_cpmd_1.log.2 and then >\var\log\cpm_cpmd_1.log.1 1. g_config_info.cpmm_config.cpm_log_path=\var\log\ 2. ... (3 Replies)
Discussion started by: meet123321
3 Replies

4. Shell Programming and Scripting

How to use system function in awk

Could any one tell me how to use the system function in awk? I want to use it to print the system date. I have been trying like this : yes |head -1|awk '{ system("date")}' When I execute the above it always returns back to the prompt. Your help would be much appreciated. regards,... (3 Replies)
Discussion started by: srikanth_ksv
3 Replies

5. UNIX for Dummies Questions & Answers

How to use ${?} and system() function???

Hi All, I am in a process to send the mail automatically with an attachment to bulk users. I have used 'Mailx' and 'Unencode' commands for the same and those worked fine. Please find below the same. X " ( cat /sastemp/body.txt; uuencode test.xls test.xls ) | mailx -s 'testing'... (1 Reply)
Discussion started by: manas6
1 Replies

6. Shell Programming and Scripting

shell function, system, awk

Hi all, I am calling a shell function within awk using system. I am struggling to get my expected output: #!/bin/sh set -o nounset BEG=44 END=55 shfun() { echo "1|2|3" } export -f shfun typeset -F > /dev/null awk 'BEGIN {OFS="|"; print "'"$BEG"'",system( "shfun"... (5 Replies)
Discussion started by: jkl_jkl
5 Replies

7. UNIX for Dummies Questions & Answers

System() function in <stdlib.h>

Hi, guys ,, I want to know the implementation of System() function in C Unix, and its prototype definition: int system(const char * string) in the header file <stdlib.h> ??! please help me ! because that is part of my project !! (0 Replies)
Discussion started by: someone33
0 Replies

8. UNIX for Dummies Questions & Answers

FIND function - system wide

Hi, I have a task to search for a file called 'Xstartup' in the whole system because there might be different versions of it which overrite eachother. Can anyone suggest a smart command to run this search ? The machine needs to scan every single folder beginning from root. Please help, I am... (5 Replies)
Discussion started by: DGoubine
5 Replies

9. Programming

system function in c

Hai Friends I have used the function system() to execute a command. My requirement is that i have to list the files in a directory applying some wildcard paterns. For example if i want to list *.c files i go with the function system("ls *.c"); and the output gets printed on the monitor.... (1 Reply)
Discussion started by: collins
1 Replies

10. Programming

system() function call...

Hi, Though I should check this myself.. but I don't have a cc compiler at this time.. :( When I compile a c program containing say system(myshell.sh).. do the executable require that the actual script myshell.sh to be present whenever it executes? I guess it needs.. otherwise I can just... (1 Reply)
Discussion started by: Vishnu
1 Replies
Login or Register to Ask a Question