When a for loop is not provided a list, it defaults to the script's parameters:
Alternatively, you can take advantage of the fact that printf reuses the format string until it has exhausted its arguments:
Regards,
Alister
Last edited by alister; 06-12-2012 at 01:54 PM..
Reason: typo
Hi all,
I am working on a c source code nearly 2000 line . it contains one big for( i=0; i< 200 ; i++ ) loop of around 600 lines
could any tell me how to break the execution of prog when the value of i is 50 in for loop so that i can check
inside the loop.
Thanks.. (1 Reply)
Hi Folks,
I have been trying to create a script wherein after it reads a certain number of data, it will pause and ask the user if he wants to continue or not. However, it seems that when it is supposed to read the user's answer, the script will go into a loop. What is wrong with my script here?... (7 Replies)
Hi,
I am trying to write a script which will read inputs form user and process those files, I have issue reading the input parameters in a loop. Following is the script...
I run the script as ./Script.sh 3 table1 table 2 table3
NumberOfTables=$1
let TableCount=1
while
do
... (3 Replies)
Hi there,
I'm wondering how I can run a script that would loop and launch a command that would take as parameter every line in a file one by one.
For example, say I want to remove a list of files:
~$ cat filestoremove
foo
bar
~$ cat myscript
for file in filestoremove; do
rm $file... (2 Replies)
Hello all,
I need to extract parameters from a file. For example, I have a file file.dat as
par1 val1
par2 val2
par3 val3
I need to extract this and store val1 in par1 variable and so on.
Please help. Thanks for your support. (2 Replies)
Hi Im running this script, which is supposed to find the max value build some tables and then stop running once all the tables are built. Thing is , it keeps assigning a null value to $h and then $g is null so it keep building tables i.e. testupdateNUL. How can I stop this? Here is what I have:
... (4 Replies)
I wonder how to stop further loop iterations when conditions gets false e.g.
This file.txt contains the following structure :
1
2
3
4
5
6
7
8
9
10
How to stop iteration when if statement gets false ?
for n in `cat file.txt`
do
if (( n<=5 )) (1 Reply)
Im unable to stop the below infinite loop (bash script). Can someone tell me why this isnt responding to signals eg: ctrl+c (SIGINT) or ctrl+z
c=0
test_loop() {
c=$(($c+1))
echo "count value is : $c "
sleep 1
test_loop
}
Im using: SunOS 5.10
PS: If run this as... (13 Replies)
I'm trying to stop reading a file until the end of the file is reached or a defined delimiter line is reached. Some how I need to test the fail state of the last 2 commands, not just the last command.
echo -e "hello\ngoodbye\n####\ntesting" | while read line; ]; do echo "$line"; done
hello... (4 Replies)
Hello,
I have snippet code from Lippman's <<C++ primer>>.
The program is to convert regular decimal (0 ~ 15) numbers to basic hexdecimals. The instruction tells the program will execute by hitting newline at the end. When I tried to run the compiled program, hitting ENTER did not work as... (3 Replies)
Discussion started by: yifangt
3 Replies
LEARN ABOUT OSF1
va_end
varargs(3) Library Functions Manual varargs(3)NAME
varargs, va_arg, va_start, va_end - Handles a variable-length parameter list
LIBRARY
Standard C Library (libc.a)
SYNOPSIS
#include <varargs.h>
va_alist va_dcl void va_start ( va_alist argp ); type va_arg ( va_alist argp, type ); void va_end ( va_alist argp );
PARAMETERS
argp Specifies a variable that the varargs macros use to keep track of the current location in the parameter list. Do not modify this
variable.
type Specifies the type to which the expected argument will be converted when passed as an argument. Unsigned char or short arguments
are converted to unsigned int, and float arguments are converted to double. Different types can be mixed, but it is up to the rou-
tine to know what type of argument is expected because the type cannot be determined at run time.
DESCRIPTION
NOTE: When writing new code, it is recommended that you use stdarg instead of varargs. They both perform the same function, but stdarg is
standards-compliant and varargs complies only with BSD conventions.
The varargs set of macros allows you to write portable functions that accept a variable number of parameters. Subroutines that have vari-
able-length parameter lists (such as the printf() function), but that do not use the varargs macros, are inherently nonportable because
different systems use different parameter-passing conventions.
The varargs macros are as follows:
va_alist()
Defines the type of the variable used to traverse the list.
va_start()
Initializes argp to point to the beginning of the list. The va_start() macro will be invoked before any access to the unnamed argu-
ments.
va_arg()
Returns the next parameter in the list pointed to by argp.
va_end()
Cleans up at the end.
Your function can traverse, or scan, the parameter list more than once. Start each traversal with a call to va_start() and end it with
va_end().
EXAMPLE
The following example is a possible implementation of the execl() function:
#include <varargs.h>
#define MAXargS 100
/*
** execl is called by
** execl(file, arg1, arg2, . . . , (char *) 0);
*/
execl(va_alist)
va_dcl
{ va_list ap;
char *file;
char *args[MAXargS];
int argno = 0;
va_start(ap);
file = va_arg(ap, char *);
while ((args[argno++] = va_arg(ap, char *)) != (char *) 0)
; /* Empty loop body */
va_end(ap);
return (execv(file, args));
}
NOTES
The calling routine is responsible for specifying the number of parameters because it is not always possible to determine this from the
stack frame. For example, the execl() function is passed a null pointer to signal the end of the list. The printf() function determines the
number of parameters from its fmt parameter.
AES Support Level: Temporary use
RELATED INFORMATION
Functions: exec(2), printf(3), stdarg(3), vprintf(3) delim off
varargs(3)