pass char string via system()


 
Thread Tools Search this Thread
Top Forums Programming pass char string via system()
# 1  
Old 04-30-2009
pass char string via system()

hello all
i am trying to pass a argument through system function to a shell script.

Code:
 
#shell script echo.sh to display the string
echo $1

and the c program is.

Code:
 
#include<stdlib.h>
int 
main()
{
  const char *str = "hello all";
  system("sh echo.sh str");
}

the output i get is str and not the string "hello all", what is going wrong here. I want to pass a string argument to a shell script via system function.
# 2  
Old 04-30-2009
The system command expects a string with a command and str within the command is passed as a literal string, not as a variable. Assign the command to a string before you pass it to the system function, something like:

Code:
#include <stdlib.h>

int main()
{
  const char *str = "echo hello all";
  system(str);
}

# 3  
Old 04-30-2009
thank you for your reply,
actually "hello all" is not fixed, it can be any string coming from a java program which i further pass to shell script, can i do it with system() or i have any other way to send this variable form c to shell script.
# 4  
Old 04-30-2009
You can use sprintf to format a string with your command and the variable string.
# 5  
Old 04-30-2009
The way echo.sh is written it will display just "hello" and not "hello all".
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
  const char *str = "hello all";
  char cmd[30];
  sprintf(cmd, "./echo.sh %s", str);
  system(cmd);
}

# 6  
Old 04-30-2009
thank you franklin52 and shamrok its working, you dont know but it was the only stage incomplete in my project you helped me a lot......Smiliethankkkkkkkk youuuuuuuu.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Segmentation fault when I pass a char pointer to a function in C.

I am passing a char* to the function "reverse" and when I execute it with gdb I get: Program received signal SIGSEGV, Segmentation fault. 0x000000000040083b in reverse (s=0x400b2b "hello") at pointersExample.c:72 72 *q = *p; Attached is the source code. I do not understand why... (9 Replies)
Discussion started by: jose_spain
9 Replies

2. Programming

Cast from String to char

Hello, This is my code: i'd like to like to add getenv("MYLIB") in the first case of my buffer inside of '1' , should i do the cast ? and how please ? Thank you. (1 Reply)
Discussion started by: chercheur857
1 Replies

3. Programming

Save system() into char[]

Hi! I have something like this : ... char buffer = "ls -l"; system(buffer); ... and i just want to save what i get to the terminal from ls -l into a char. I first think of doing something like ls -l>text.txt and after opening the file in my program and fscanf(). Any faster way ?... (6 Replies)
Discussion started by: giampoul
6 Replies

4. Programming

How to find length of string and pass into char array in C?

Hi All I want to take a Hexadecimal number as input and i want to find lenth of the input and pass it to char s ( char s ). I have a program to convert hexadecial to binary but it is taking limited input but i want to return binary number based on input. How? (1 Reply)
Discussion started by: atharalikhan
1 Replies

5. Programming

PERL \c char in the string

Hi guys, I am stuck up in a situation. I have a SUN box with certain logs which I need to parse to draw a report using Perl. Now, when I load the text file using a perl degugger to see how the text looks like when the first line of the log file is read in a variable. below is the snapshot of... (2 Replies)
Discussion started by: Asteroid
2 Replies

6. Shell Programming and Scripting

How to loop through every char in a string

for example this string: gLZMQp8i Loop become easy if we add space between each char, How to do it? or other solutions are welcome. (9 Replies)
Discussion started by: honglus
9 Replies

7. Shell Programming and Scripting

Parsing char string

I am stumped! I need to parse an input parameter to a script that has the form '-Ort'. I basically need 'O', 'r' and 't', i.e. the individual characters in the string parsed. Since there are no delimiters, I don't know how awk could do this. Can someone tell how to do this, this should be a... (5 Replies)
Discussion started by: ALTRUNVRSOFLN
5 Replies

8. Shell Programming and Scripting

last char from a string

i have a script that reads a plain text file. (its a ksh, and i can use bash also) each line of the file is a fullpath of a file. that makes the list huge. i need to add a functionalitie to that script, i have to be able to add /usr/* or /usr/ and with that reference all the files and folders... (6 Replies)
Discussion started by: broli
6 Replies

9. UNIX for Dummies Questions & Answers

string of 7 char length always...

Hi, I know, particular value in the variable should always be of lenth 7 , but the value that is present in thevariable might be of any no.of characters less than or equal to 7... if the no.of characters in the variable is less than 7, I want to add, zeroes at the starting of the field.. How can... (3 Replies)
Discussion started by: thanuman
3 Replies

10. Programming

Compare Char to String

This is actually a c++ question... Basically I am creating a program that asks for five characters. I have a dictionary file containing tons of words no long than five letters long, on a seperate line. I want to be able to take the five inputted letters and compare them to the words in the file... (3 Replies)
Discussion started by: Phobos
3 Replies
Login or Register to Ask a Question