Sponsored Content
Top Forums Programming Building an argc/argv style structure from a string (char*) Post 302380929 by cbarwise on Wednesday 16th of December 2009 04:52:06 PM
Old 12-16-2009
Hi Jim,

Ok, I'll start from scratch with what I'm doing and perhaps there's an easier way you might see.

I'm writing an application that uses vi-like keybindings and has a command-mode similar to vi. Specifically, in command mode one can do a "write" just like in vi
:w
-or- to save the current playlist (this is a music application), one can do
:w filename

If they specificy a filename such as
:w foo\ bar
or,
:w "foo bar"

In these cases, I'd obviously like to be able to parse the parameters correctly (i.e. recognize that "foo\ bar" is one string, not two).

There are other a few other commands I have (and I'm currently working on a few more), that take multiple parameters, and I'd like to be able to handle spaces and quoting correctly for them.

About my current setup:
All of the command functions take two params, "int argc" and "char *argv[]", just like a regular "main" function. I then have an array of strings and function pointers (to these functions) that behaves essentially like a path.
When a user is in command mode and enters a string, I parse that string into a (bad) argc/argv structure, and then search the path for a matching named record, and if found, execute the function with the argc/argv that I built.

Does this help make clear at least my setup and what I'm asking about? I can point you to code if you would like.

Thanks again,
-Ryan
 

9 More Discussions You Might Find Interesting

1. 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

2. Programming

dbx debugger + argv[argc]

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

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

4. Programming

How to turn argv[1] into a string in C?

i have a function that's parameter is char *s and in the main function i am sending that function &(argv), but i dont think this is working, how can i fix this? can i cast it to be a string or something? is there a way i can create a new string thats exactly what argv is equal to... (6 Replies)
Discussion started by: omega666
6 Replies

5. Shell Programming and Scripting

ARGV and ARGC in bash 3 and bash 3.2

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

6. Shell Programming and Scripting

argc/ argv in awk

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

7. 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

8. Programming

Building Block style programming Book

Hello to all, Here is my situation. Some time in the mid-80's I stumbled across a small white programming book - can't remember the name but it was unique in that it started right out giving instructions on creating building blocks in code as a foundation for a complete system. The book was... (2 Replies)
Discussion started by: jozefn
2 Replies

9. Homework & Coursework Questions

Help using argc/argv in assignment

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
Mojo::Path(3pm) 					User Contributed Perl Documentation					   Mojo::Path(3pm)

NAME
Mojo::Path - Path SYNOPSIS
use Mojo::Path; my $path = Mojo::Path->new('/foo%2Fbar%3B/baz.html'); shift @{$path->parts}; say $path; DESCRIPTION
Mojo::Path is a container for URL paths. ATTRIBUTES
Mojo::Path implements the following attributes. "leading_slash" my $leading_slash = $path->leading_slash; $path = $path->leading_slash(1); Path has a leading slash. "parts" my $parts = $path->parts; $path = $path->parts([qw(foo bar baz)]); The path parts. # Part with slash push @{$path->parts}, 'foo/bar'; "trailing_slash" my $trailing_slash = $path->trailing_slash; $path = $path->trailing_slash(1); Path has a trailing slash. METHODS
Mojo::Path inherits all methods from Mojo::Base and implements the following new ones. "new" my $path = Mojo::Path->new; my $path = Mojo::Path->new('/foo%2Fbar%3B/baz.html'); Construct a new Mojo::Path object. "canonicalize" $path = $path->canonicalize; Canonicalize path. # "/foo/baz" Mojo::Path->new('/foo/bar/../baz')->canonicalize; "clone" my $clone = $path->clone; Clone path. "contains" my $success = $path->contains('/foo'); Check if path contains given prefix. # True Mojo::Path->new('/foo/bar')->contains('/'); Mojo::Path->new('/foo/bar')->contains('/foo'); Mojo::Path->new('/foo/bar')->contains('/foo/bar'); # False Mojo::Path->new('/foo/bar')->contains('/f'); Mojo::Path->new('/foo/bar')->contains('/bar'); Mojo::Path->new('/foo/bar')->contains('/whatever'); "merge" $path = $path->merge('/foo/bar'); $path = $path->merge('foo/bar'); $path = $path->merge(Mojo::Path->new('foo/bar')); Merge paths. # "/baz/yada" Mojo::Path->new('/foo/bar')->merge('/baz/yada'); # "/foo/baz/yada" Mojo::Path->new('/foo/bar')->merge('baz/yada'); # "/foo/bar/baz/yada" Mojo::Path->new('/foo/bar/')->merge('baz/yada'); "parse" $path = $path->parse('/foo%2Fbar%3B/baz.html'); Parse path. Note that %2F will be treated as "/" for security reasons. "to_abs_string" my $string = $path->to_abs_string; Turn path into an absolute string. "to_string" my $string = $path->to_string; Turn path into a string. SEE ALSO
Mojolicious, Mojolicious::Guides, <http://mojolicio.us>. perl v5.14.2 2012-09-05 Mojo::Path(3pm)
All times are GMT -4. The time now is 11:05 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy