03-25-2005
*argv oki
With the above code, using the strcat function, ptr2[0] = "..." , ptr2[1] is set to "null", etc... I have just found my error. I must "send" my params as an ARRAY
![Stick Out Tongue Smilie](https://www.unix.com/images/smilies/tongue.gif)
.
Here is my new code, working well :
char param[150],location[100],*ptr,**ptrptr;
ptr = param;
ptrptr = &ptr;
ptrptr[0] = "wgrib";
ptrptr[1] = location;
ptrptr[2] = "-d";
ptrptr[3] = "0";
ptrptr[4] = "-text";
wgrib(5, ptrptr);
with int wgrib(int argc, char *argv[]) (or int wgrib(int argc, char **argv))
Thanks
![Big Grin Smilie](https://www.unix.com/images/smilies/biggrin.gif)
10 More Discussions You Might Find Interesting
1. Programming
I have a program which I wish to modify. It used to be run from the command line, but now I wish to change this so it can be used as a function.
The program has complex argument processing so I want to pass my paramters to as if it were being called by the OS as a program.
I have tried to... (2 Replies)
Discussion started by: mbb
2 Replies
2. Programming
Is it possible to use the dbx debugger with the CL options for the executable ?
Say you have created a executable called myfunc which can take string arguments at run-time. You run it like this
./myfunc Hello World
where Hello and World are the string arguments
My question is whether... (1 Reply)
Discussion started by: JamesGoh
1 Replies
3. Programming
Hi C experts,
I have the following code for adding command line option for a program
int main (argc, argv)
int argc;
char *argv;
{
char *mem_type; //memory type
char *name; //name of the memory
int addr; //address bits
int data; ... (5 Replies)
Discussion started by: return_user
5 Replies
4. Programming
Hello All,
First post. I've been struggling with the following:
Given a char* string, I need to construct an "int argc, char *argv" style structure. What I'm struggling with most is handling escaped-whitespace and quotes.
e.g. the string:
char *s = "hello world 'my name is simon'... (10 Replies)
Discussion started by: cbarwise
10 Replies
5. Programming
Hi,
Can somehelp help how to list file in a dir? (5 Replies)
Discussion started by: Learnerabc
5 Replies
6. Programming
when i run my program, i have a parameter, that i want to set the value to another string
i am using
int main(int argc, char **argv) {
char my_str=argv;
printf("%s",my_str);
return 0;
}
and i get
Segmentation fault
ran using
./my_prog /usr/share/dict/words hello1
... (2 Replies)
Discussion started by: omega666
2 Replies
7. Shell Programming and Scripting
Hi Folks,
I've prepared a shell script that takes action based on arguments and number of arguments..sample code like:
ARGV=("$@")
ARGC=("$#")
case ${ARGV} in
abc)
if ; then
......
else
printf "\nInvalid number of arguments, please check the inputs and... (2 Replies)
Discussion started by: SBC
2 Replies
8. Shell Programming and Scripting
Hi guys,
i'm trying to solve this problem.
I have to run something like
cat file1.txt | awk -f script.awk 10
if i'm in the awk script, how can i take the parameter :10 ??:wall:
i try something like :
BEGIN{
var=argv
}
{..}
END{..}
but obviously is not correct... (5 Replies)
Discussion started by: heaven25
5 Replies
9. UNIX for Advanced & Expert Users
All of my machines (various open source derivatives on x86 and amd64) store argv above the stack (at a higher memory address). I am curious to learn if any systems store argv below the stack (at a lower memory address).
I am particularly interested in proprietary Unices, such as Solaris, HP-UX,... (9 Replies)
Discussion started by: alister
9 Replies
10. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
First, create a "hello world" program that prints "Hello World". But NOW, instead use argc to verify that a... (9 Replies)
Discussion started by: miniviking10
9 Replies
ARG(2) System Calls Manual ARG(2)
NAME
ARGBEGIN, ARGEND, ARGC, ARGF, arginit, argopt - process option letters from argv
SYNOPSIS
#include <u.h>
#include <libc.h>
ARGBEGIN {
char *ARGF();
Rune ARGC();
} ARGEND
extern char *argv0;
/* Alef only */
Arg *arginit(int argc, byte **argv);
Rune argopt(Arg *arg);
byte *argf(Arg *arg);
DESCRIPTION
These macros assume the names argc and argv are in scope; see exec(2). ARGBEGIN and ARGEND surround code for processing program options.
The code should be the cases of a C switch on option characters; it is executed once for each option character. Options end after an argu-
ment --, before an argument -, or before an argument that doesn't begin with -.
ARGC() returns the current option character.
ARGF() returns the current option argument: a pointer to the rest of the option string if not empty, or the next argument in argv if any,
or 0. ARGF must be called just once for each option that takes an argument.
After ARGBEGIN, argv0 is a copy of argv[0] (conventionally the name of the program).
After ARGEND, argv points at a zero-terminated list of the remaining argc arguments.
Alef
The Alef argument processing routines are unrelated. Instead, an aggr called Arg is initialized by a call to arginit. Successive calls to
argopt return successive option characters, or zero at the end of the options. After a call to argopt, argf will return any argument
string associated with the option.
EXAMPLES
This C program can take option b and option f, which requires an argument.
#include <u.h>
#include <libc.h>
void
main(int argc, char *argv[])
{
char *f;
print("%s", argv[0]);
ARGBEGIN {
case 'b':
print(" -b");
break;
case 'f':
print(" -f(%s)", (f=ARGF())? f: "no arg");
break;
default:
print(" badflag('%c')", ARGC());
} ARGEND
print(" %d args:", argc);
while(*argv)
print(" '%s'", *argv++);
print("
");
exits(0);
}
Here is the output for the run prog -bffile1 -r -f file2 arg1 arg2
prog -b -f(file1) badflag('r') -f(file2) 2 args: 'arg1' 'arg2'
This Alef program accepts options b and, with an attached file name, f.
#include <alef.h>
void
main(int argc, byte **argv)
{
int a, ac, bflag;
byte *file;
Arg *arg;
arg = arginit(argc, argv);
while(ac = argopt(arg)) switch(ac){
case 'b':
bflag = 1;
break;
case 'f':
file = argf(arg);
break;
}
for(a=0; a<arg->ac; a++)
print("argument %s
", arg->av[a]);
}
SOURCE
/sys/include/libc.h
ARG(2)