C/C++ :: Simple Shell Argument Parsing

Apr 9, 2014

Simple c shell I have been writing. The problem I am having is to do with my argument passing. I have written a simple state machine to parse commands given by the user into an appropriate array of character pointers for use with the function execvp().

My experience with c coding is limited, I think I'm getting confused with pointer manipulation and stack memory. I am trying to store the 'tokens' within my struct->argv[].

Add the ability to handle program names and parameters that contain white space: everything in between two double quote (") characters needs to be treated as one word! E.g. "./hello world" should be treated as the name of one program called hello world (in the current directory, with a space in the middle of the file name) rather than a program called hello with one parameter world.

Here is my parsing functionality.

struct Command {
char *name;
int argc;
char *argv[MAX_ARGS];
};
struct Command command;
void createToken(char *start, char *end)

[Code] .....

View 3 Replies


ADVERTISEMENT

C :: Creating Shell In Linux

Feb 22, 2015

This is what so far i did

Code:
#include <stdio.h>#include <string.h>
#include <ctype.h>
#include <bsd/string.h>

int
main(void)

[Code] ....

How to do this Using the fork(), execvp() and waitpid() system calls, launches the requested program and waits until the program has finished.

View 3 Replies View Related

C :: How To Compile And Run Program From DOS Shell

Mar 19, 2013

How to compile and run program from DOS shell. Any list of procedures....

View 1 Replies View Related

C :: Call Another Program Via Shell Script

Oct 2, 2014

I'm trying to call another c program via shell script in c, but it just pop-up and close again.. here's my code:

char* command = "";
char temp[MAX_LENGTH] = "";

sprintf(temp, "gnome-terminal -e 'bash -c "./Isopropyl %s"'", editor -> filename);
command = malloc(strlen(temp) + 1);

if(command == NULL)
return;

strcpy(command, temp);
system(command);

View 1 Replies View Related

C++ :: Sorting Data Saved Using Shell Algorithm

Feb 4, 2013

#include <iostream>
using namespace std;
class CD {
public:
static const int num = 100;
char publisher[num], title[num], location[num];

[Code] .....

View 1 Replies View Related

Visual C++ :: Shell (Namespace) Extension Not Registering?

Dec 13, 2012

I have created a Namespace Extension (I hope so) by creating a ATL Project with MFC support as dll in Visual Studio 2010.

Now I have a Implementation of IShellFolder:

Code:
// ILCShellFolder.h: Deklaration von CILCShellFolder
#pragma once
#include "resource.h" // Hauptsymbole
#include "NewNSE_i.h"
#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)

[Code] ....

Not any of those IShellFolder Methods is being called... When I attach the explorer.exe process (which I know I can use to debug on other projects, just in case to exclude errors) it tells me that the DLL is not loaded by the explorer.exe process.

View 1 Replies View Related

C++ :: Redirect Shell Standard Output Into Program Stream?

Oct 4, 2013

I want to take the standard output of a shell command (in Red Hat, using tcsh, in my case) and redirect it into my program for processing.

(Then ideally I would love to take the output of my program and redirect it to yet another command, but this is a second issue.) Simple example: I naively thought this might work:

I want to type this on the shell:

Code: $ echo Harry > hello and I was expecting this output on my terminal:
Code: $ hello, Harry And this would be my simple hello program:
Code: #include <iostream>
#include <string>
int main() {
std::string usrInput;
std::cin >> usrInput;
std::cout << "hello, " << usrInput << std::endl;
return 0;
}

View 3 Replies View Related

C++ :: Application To Load Other Applications In A Secure Shell Based On User Interaction

Jul 9, 2013

I will sketch the scenario I would like to get working below. I have one main application.

That application, based on user interactions, can load other applications in a secure shell. This means these child applications cannot interact with the OS anymore, nor with each other.

The parent program can at any time call functions of these child programs.

The child program can at any time call functions of these parent programs.

How to implement this in C++? Preferably both parent and child should be written in C++.

The performance of loading the child applications doesn't matter. The only thing that matters is the performance of the communication between child and parent.

View 4 Replies View Related

C :: Stop Shell From Automatically Converting Wildcards In Arguments To Directory Listings

Oct 2, 2014

Ok I'm on a Windows machine and I'm writing a simple tool to dump and touch ttf files. It's almost done except that the command line parser is giving nightmares. how do I stop the shell from automatically converting wildcards in arguments to directory listings? (I first flatten all arguments to a single string before parsing)

View 7 Replies View Related

C# :: Parsing String Into IP Address

Oct 1, 2012

So im trying to parse a string into a Ip Address but i have a problem, the IPAddress.Parse method only works for ipv4 address's how do i parse ANY Ip address into a string, if i use the IPaddress.Parse method on my public(remote) IP it throws an exception but on ipv4 local ip it doesn't how do i parse ANY ip address the user inputs as a string as an Ip Address?

View 5 Replies View Related

C++ :: Parsing String To Contain Inputted Int

Sep 10, 2014

I have been here for almost 3 months looking for answers in my C++ problems.here's some type of code for this.

cout << "Enter value of x: " << endl; //Let's say 5.
cin >> x;
cout << "Enter equation: "; //Let's say x+1
cin >> equation;

Then the program analyzes that this character "x" has an initial value of 5.I already have the parser for the equation functions (+,-,*,/)This is the only thing lacking. Is there some type of function that i missed?

View 6 Replies View Related

C# :: Parsing XML File Properly

Apr 11, 2014

I'm parsing an xml file full of payslips and using the data in another application. I've got it all working but I suspect it isn't the most elegant piece of code. I run through the xml file finding a series of "Text" attributes/elements" and then I run through it again finding a series of "Field" attributes/elements, Here is a sample of the code:

For getting the "Text" fields :

XNamespace ns = "urn:crystal-reports:schemas:report-detail";

//
// Get all the Text attributes & Elements
//
foreach (XElement xtxt in xdoc.Descendants(ns + "Text"))

[Code]...

This works fine, I extract all the data I'm interested in and go to do my thing with it. However I really need to know when each record ends and I was doing that by looking for "Text24" in the text fields and "EeRef2" in the field fields, which wasn't very elegant in the first place. Then a "Text16" was added to end of each record which was fine I could just look for "Text16" but now it's apparent that "Text16" isn't always there. I've got it all working for now but I'd prefer to process one record at a time i.e. extract all the "Text" & "Field" values for one record, do whatever I need to do with it, update the xml file to indicate this progress ( if possible ) and then move on to the next record. I've attached a sample of the xml but basically is has the following structure :

<Details>
<Section>
<Text></Text>
"
<Field></Field>

[Code]...

So a record is everything between the first <Details> and the last </Details> with two <Details> and two </Details> in between.

View 2 Replies View Related

C :: Parsing String And Capturing In Variables

Nov 3, 2013

I have an input file that contains any number of lines. Each line will follow the same structure. There will be 5 fields, separated by 4 commas. Fields 1 and 3 will be single characters, fields 2,4,5 will be integers. Example:

<A, 123, B, 456, 789>

I need to iterate over each line, parse out the fields, and capture each field value into a separate variables.

header file: Code: #include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>

[Code]....

I've used similar code to this before, but this time I'm getting the dreaded pointer from integer error on my strtok lines:

warning: passing argument 2 of 'strtok' makes pointer from integer without a cast'

View 2 Replies View Related

C :: Parsing A Line To Extract A Particular Substring?

Mar 14, 2014

Suppose I have read a line from an ASCII file with fgets(). Now I want to parse the line, which looks something like this: Code: # John Q. Public et al. 2014, to be submitted The name, "John Q. Public" is what I want. However, the name can be anything, consisting of 1 or more tokens separated by spaces. it could be "John" Or "John Public", or "Thurston Howell the 3rd", or etc... Bascially, I need to get the entire substring between the first hash mark, and the "et al" in the line. I tried this: Code: sscanf(line,"# %s et al.",name); But I can only get the first token (which, in this case, is "John").

View 2 Replies View Related

C++ :: Parsing Large Text File

Feb 10, 2013

I have a massive text file containing many thousands of directory and file names with / at the root, like so:

/dir/
/dir/dir/
/dir/dir/dir/
/file
/dir/file
/dir/dir/file
/dir/dir/dir/file

I need to parse the file in such a way that I can create a filesystem hierarchy as if I were enumerating files/directories. Ultimately I want to add these to a tree gui control with everything under its proper node without duplicating anything. It should look roughly like so:

dir
-file
-dir
-file
-dir
-file

I can open the file and add nodes/children to the tree control but how should I go about doing the actual parsing? How can I find a filename and say "this belongs under this node"? I want to do this efficient as possible even if I must use multiple threads.

View 1 Replies View Related

C++ :: Parsing Command Line Parameters

May 19, 2013

I have to make a c++ program, in which with an algorithm I have to code a text from a file and write it to another file. The input should like this: "code forCoding.txt toBeWritten.txt" ; or like this: "decode toBeReadFor.txt toBeWrittenIn". I have done everything except one thig: It is says I have to be able to input parameter.

How should i write this? I read [URL] ....., but still dont get. The input of my program has to have 3 strings, so I guess argc should be 3, but I dont really get it. What should I have in my main about this parsing command line parameters?

View 4 Replies View Related

C++ :: Parsing Multidimensional Vector Into Array

Nov 30, 2013

For a rather complex and strange reason that I won't explain right now, I need to have this going on in my program.

class FVF{
private:
vector<vector<float>> data; //Contains fvf data for Direct3D stuff
public:

[Code].....

The FVF allows this Model3D class to also be compatible with file handling methods I've got, but here's the problem. D3D buffers require an array to feed them the information, and I know that for a single dimension of vector I can use vec.data(), how to do this for multiple dimensions.

I think the best Idea I've got so far is to set the vector within the Model3D class as a pointer, then I can union it with a float pointer... Once I can guarantee the information is correct and complete, manually transfer the contents of the vectors into the float pointer.. (The union is to reduce memory needed instead of having the data repeated in vectors and arrays)

how I could just pass these as arrays?

View 4 Replies View Related

C++ :: Parsing Data From Text File?

Aug 26, 2014

Requirements in filtering the text file.

1. first my professor required me NOT to change the MAIN function(because he made it)

2. I have to make 3 getlogs() STRING FUNCTIONS:

a. string getlogs(); - accepts no paramters, SHOWS ALL THE CONTENTS OF TEXT FILE
b. string getLogs(const string & a); - accepts 1 parameter -SHOWS ONLY THE LINE WHICH CONTAINS THE SPECIFIED DATE FROM MAIN FUNCTION which is "2014-08-01"
c. string getLogs(const string & b, const string & c); - accepts 2 parameters, SHOWS ONLY THE LINES FROM THE DATE START to DATE END specified at THE MAIN FUNCTION which is date start-"2014-08-01";DateEnd = "2014-08-10";

3. all COUT should be in the MAIN FUNCTION

TEXTFILE CONTAINS:
2014-08-01 06:13:14,Name,4.5,CustomUnit,CustomType
2014-08-02 06:13:14,Name,4.5,CustomUnit,CustomType
2014-08-03 06:13:14,Name,4.5,CustomUnit,CustomType
2014-08-04 06:13:14,Name,4.5,CustomUnit,CustomType

[Code] .....

my codes so far:

//MAIN
#include <iostream>
#include <string>
#include <fstream>
#include <dirent.h>

[Code].....

View 1 Replies View Related

C++ :: Parsing Through Large Data Sets

May 30, 2013

So I'm attempting to write a program that will parse through a large file (genome sequences) and I'm basically wondering what options I should consider if I wanted to either:

a) store the entire genome in memory and then parse through it
b) parse through a file in small portions

If I go with "a", should I just read a file into a vector and then parse through it? And if I go with "b" would I just use an input/output stream?

View 5 Replies View Related

C/C++ :: Parsing Integers Values From Strings

Sep 30, 2014

So I have this assignment to read a file in, malloc some arrays, run it through a perceptron and to display the final weights. I have the majority of it already written but this is only my third program in C and I'm more familiar with Java and Python than C.

The problem I'm having is when I read in command line arguments, I can't seem to parse integer values from the strings in argv[i] by using atoi().

I've included the piece of code where I'm trying to 'parse.' I understand atoi convers ascii to integer, but I don't understand if it just gives you the ascii code or the number that it actually represents. I attempt to use atoi on lines 33-35

The input arguments in the command line are:

bob in.csv 100 5 10

int main(int args, char* argv[]){
int ** ra; // array of array of pointers
FILE *ifp; // file pointer
char cc; // char var for reading input from file
int i = 0; // counter

[Code] ....

View 3 Replies View Related

C++ :: Parsing Of Char Array Won't Finish

May 6, 2013

I have some cpp code that is looping through an array of char looking for a delimiter. The code saves the chars in a string until it finds the delimiter, then it adds the string to a vector of string and continues processing.

The input char array is,
Cl.N1C=CC=N1.HCl
the delimiter is '.', so the parsed strings should be,
Cl
N1C=CC=N1
HCl

The code seems to work find for the first two strings, but then it seems to stop and not find the third string.

This is the code,

Code:
#include <iostream>
#include <vector>
#include <string>

[Code].....

...then nothing. The function returns to the calling code, but may not have returned normally, it is hard to tell.

This appears to work up to a point, but does not find the last string HCl. The size of the char array that is passed to the functions prints as correct (16), so the for loop should process all 16 characters in the array. I don't see here why it stops.

This was compiled using g++-3. Some of the unusual syntax results from this being a cpp function that is called from fortran. The char array that is passed to the cpp prints as correct and has the correct size, so I don't think that is part of the problem.

View 5 Replies View Related

Visual C++ :: Parsing A Line For Words?

Sep 21, 2013

I'm getting this when I compile my program. Then, when the program runs I get an error. I assume it is because I have the warning for this problem. How can get around this error.

warning C4172: returning address of local variable or temporary

Code:

#include <iostream>
#include <cstring>
using namespace std;

[Code]....

View 10 Replies View Related

C++ :: Convert Numbers To Integers - Parsing EOF

Oct 26, 2012

Here`s the text:

You have to expect the following input : an arbitrary amount of lines, each line consists of 5 int32 numbers. The full input will be terminated by an EOF.

E.g.:

1 2 3 4 5
6 7 8 9 0
...

You`re then supposed to convert the numbers to integers and do some calculations. I would know how to parse a single line of 5 numbers via scanf(). That`s easy, and that`s exactly what they did in class.

But how do i go about splitting the lines? What about the EOF? Even if could hack something together, by using errno or something, it would be way beyond what they are doing atm. The input is received via user input, ie stdin.

View 1 Replies View Related

C :: Program Crashes When Parsing Musical Notes From It

Jul 23, 2013

I have the text parser done, but when I use it, the program crashes. Just because of how I test my code, I know the section where it occurs, but I'm not sure what the exact problem is ( no errors or warning, so it's just something I don't see ). Here is the full code

Code: #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>

[Code].....

I probably made a mistake in the way I allocated memory or tested values, but I'm not sure where it is in my code. Currently it just prints out "Failed to parse data on line 1" then crashes. Here is the text file I give to this program.

Code:
A#3 500 A#3 500 A#3 500
rest 1000
B#4 500 C3 500

View 7 Replies View Related

C++ :: Parsing String To Recognize Trigonometric Functions

Sep 14, 2014

How do I create a function that can understand trigonometric functions?

Examples:

if I am to input: x^2 + sin(x)

The program will understand the the value between parenthesis preceded by a string "sin" will be computed as the sine of x. of any function in case.

I have the program here.

#include <iostream>
#include <cstdlib>
#include <cctype>
#include <cstring>
using namespace std;
enum types { DELIMITER = 1, VARIABLE, NUMBER }; //DEL = 1; VAR = 2; NUM = 3.
class analyzer {

[Code] .....

View 9 Replies View Related

C++ :: Parsing Time In Command Line Arguments?

Sep 15, 2013

my professor just increased the problem by saying the time value should be passed as command line arguments can anybdy tell the code to parse time as command line arguments

View 10 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved