argv


 
Thread Tools Search this Thread
Top Forums Programming argv
# 1  
Old 01-08-2003
argv

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 store data in a array and pass it through though it, but hasn't worked in the manner it should.

I thought argv was a char array but this does not seem to be the case.

How should I pass parameters into this function using the argc, argv protocol?
# 2  
Old 01-08-2003
Here is a quicky c program:
Code:
#include <stdio.h>

int main(argc, argv)
int argc;
char *argv[];
{
        int i,k;
        printf("argc = %d \n", argc);
        for(i=0; argv[i]; i++) {
                printf("parameter = %d \n", i);
                for(k=0; argv[i][k]; k++)
                        printf("   char = %c \n", argv[i][k]);
        }
        exit(0);
}

I can modify it into:
Code:
#include <stdio.h>

main()
{

char *argv2[20];
int argc2;
int ret;

argv2[0] = "not_main function";
argv2[1] = "arg one";
argv2[2] = "222";
argv2[3] = NULL;
argc2 = 3;
ret = not_main(argc2, argv2);

/* if not_main uses exit(), we will never get here */
exit(0);

}


int not_main(argc, argv)
int argc;
char *argv[];
{
        int i,k;
        printf("argc = %d \n", argc);
        for(i=0; argv[i]; i++) {
                printf("parameter = %d \n", i);
                for(k=0; argv[i][k]; k++)
                        printf("   char = %c \n", argv[i][k]);
        }
        exit(0);
}

# 3  
Old 02-13-2003
(Forgot I posted this one before I went away to my hols!
Why didn't I get an email notification?)

Anyway thanks for the answer Perderabo!

I had assumed that the argv structure was a simple two dimensional array! Doh!

The correct assumption is, of course, that argv is an array of POINTERS!

Once I had sorted that out, everything fell into place!

Thanks again.

MBB
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

ARGV how to use it?

So i am trying to read in file readFile <GivenFile> modFile looking for a regular file under the directories in the GivenFile and print them out is my over all goal. basically I am looking for anything that looks like a directory in the given file and printing it out. Since I am trying to do... (2 Replies)
Discussion started by: squidGreen
2 Replies

2. UNIX for Advanced & Expert Users

O argv, argv, wherefore art thou argv?

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

3. Programming

How do I copy or rewind *argv[]

I'm working on my own pow function and I need to make a copy of *argv but I think that I am having trouble with the size of *argv and the size of any array that I make. The code below isn't working for me. and I want to accept any number no matter the size with pow -f 2 2. I was working out... (16 Replies)
Discussion started by: Errigour
16 Replies

4. Programming

help with C, argv

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

5. Programming

ARGV help in C

Hi, Can somehelp help how to list file in a dir? (5 Replies)
Discussion started by: Learnerabc
5 Replies

6. Shell Programming and Scripting

$#Argv in Csh

Hello all, Had a quick question: In a typical csh script should inputting via stdin (i.e. set i = $< ) increase the value of $#argv ? echo enter an value: set val= "$<" if($#argv == 0) then echo No args else echo The arg is $argv so if a value is inputted #argv... (1 Reply)
Discussion started by: new2C
1 Replies

7. Shell Programming and Scripting

if #argv = (this OR that) then...

this is in one of my scripts... if ($#argv == 0) then echo 'blah bla' exit 0 endif I want it to be something like this... if ($#argv == 0 OR $argv >=3) echo 'blah bla' exit 0 endif so when the arguments are none, or greater than three I want this "if then" to take over. how? I... (5 Replies)
Discussion started by: ajp7701
5 Replies

8. Programming

help for argv argc

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

9. Shell Programming and Scripting

Perl: Getting $ARGV's to operate like while(<>)

I have a script that asks a bunch of questions using the following method for input: print "Name:"; while(<>){ chomp; $name=$_; } So for example, if the questions asked for name, age, & color (in that order)... I want to be able to easily convert $ARGV into the input expected by... (2 Replies)
Discussion started by: jjinno
2 Replies

10. Programming

Using argv argc

I searched on the forums. No advises. I am using a previous source code. I changed the main function main(int argc, char **argv) in a function misc(int argc, char **argv). How do you use the argc and argv parameters? This is how I am calling the function : char param; strcat(param,"wgrib ");... (4 Replies)
Discussion started by: Akeson Chihiro
4 Replies
Login or Register to Ask a Question

Featured Tech Videos