can we send arguments to system() call


 
Thread Tools Search this Thread
Top Forums Programming can we send arguments to system() call
# 1  
Old 08-14-2006
can we send arguments to system() call

Hi friends

my C code is

int main()
{
system("cp <source> <destination>");
}

my question is
how to set variables for <source> and <destination>
how can we pass it to system() call.

can you suggest me
thankyou
kingskar
# 2  
Old 08-14-2006
In such situations it's always better to do a combination of fork and one of the exec family member.

if(fork()==0){
//do nothing
}
else{

exec....( what ever suits you)

}

You can also check the exec man page to see the all members of exec family!!

regards
Apoorva kumar
# 3  
Old 08-14-2006
Thankyou apoorva

Thankyou for your valuable suggestion

Cheers
Shekar
# 4  
Old 08-14-2006
vfork and exec - that is what is done in system function call..

and to answer your question, something like this would do..
Code:
/* source file in char source[512] and dest file in char dest[512] */
char str[512];
memset(str, '\0', sizeof(512));
sprintf(str, "/usr/bin/cp %s %s", source, dest);
ret=system(str);

# 5  
Old 08-17-2006
Quote:
Originally Posted by matrixmadhan
vfork and exec - that is what is done in system function call..

and to answer your question, something like this would do..
Code:
/* source file in char source[512] and dest file in char dest[512] */
char str[512];
memset(str, '\0', sizeof(512));
sprintf(str, "/usr/bin/cp %s %s", source, dest);
ret=system(str);


Yes
your code is exactly fits for my requirement.
Thankyou
Cheers
kingskar
# 6  
Old 08-17-2006
if you are using glibc it may be better to use:
#define _GNU_SOURCE
#include <stdio.h>

char *buf;
asprintf(&buf,"cp %s/%s",src,dst); /* do not forget error check */
system(buf);
free(buf);

the advantage is that you have no limits for pathlenght.
you can also emulate asprintf with 2 calls to snprintf()
# 7  
Old 08-17-2006
what is the need to use free here ?
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Call same function using 2 different arguments

I have a script that uses 2 arguments. I want to call the function part within this script using these same arguments. Below is what I came up with below script so far, any guidance would be helpful. Thank you! cat backup.sh #!/bin/bash function usage { echo "USAGE: $(basename $0)... (6 Replies)
Discussion started by: mbak
6 Replies

2. Shell Programming and Scripting

How to call Oracle function with multiple arguments from shell script?

Dear All, I want to know how can i call oracle function from shell script code . My oracle function have around 5 input parameters and one return value. for name in *.csv; do echo "connecting to DB and start processing '$name' file at " echo "csv file name=$x" sqlplus -s scoot/tiger <!... (2 Replies)
Discussion started by: Balraj
2 Replies

3. Shell Programming and Scripting

Need to call a function with arguments

I need to call a function within a code with $database and $ service as the arguments How do I proceed ? and how would a function be defined and these two arguments would be used inside the function? calc_pref_avail $database $service Best regards, Vishal (7 Replies)
Discussion started by: Vishal_dba
7 Replies

4. Shell Programming and Scripting

How to funnel stdout into call arguments?

This command successfully gives me the clearcase views I want in stdout, one line per view name. Each view name appears to have no spaces. cleartool lsview | grep -i `uname -n` | grep -v "ViewStorage\\|vgr_tools_sv" | cut -f 3 -d ' ' How can write a cygwin bash "for" loop that will iterate... (4 Replies)
Discussion started by: siegfried
4 Replies

5. Homework & Coursework Questions

program to send messages to parent using pipes and select system call

Write a program using select, which will create some number of child processes that continuously send text messages to the parent process using pipes. Each child has its own pipe that it uses to communicate with the parent. The parent uses select () to decide what pipes should be processed to... (1 Reply)
Discussion started by: ripssingh
1 Replies

6. UNIX for Dummies Questions & Answers

write() system call arguments

Hi, I'm trying to understand the arguments from this system call, can someone help me figure it out? write(1, "/home/nick/11sp/fred\n", 27/home/nick/11sp/fred) = 27 for argument 1, i know it is a file descriptor which specifies standard output. Argument 2, i believe is "what is to be... (4 Replies)
Discussion started by: l flipboi l
4 Replies

7. Shell Programming and Scripting

send arguments to a .exe file from a shell script

Folks , can anyone post a sample showing a way to parse a variable containing a string to a .exe file . Thanks Venu (2 Replies)
Discussion started by: venu
2 Replies

8. Shell Programming and Scripting

How to call arguments with variable in a script??

Hello, I was wondering if it were possible to call arguments passed to a script using a variable. For example: sh script.sh yes no good bad x=$# while do echo (last argument, then second last etc until first argument) let x=($x-1) done should print out bad good no (4 Replies)
Discussion started by: VanK
4 Replies

9. UNIX for Advanced & Expert Users

how to differentiate system call from library call

Hi, Ho do I differentiate system call from library call? for example if I am using chmod , how do I find out if it is a system call or library call? Thanks Muru (2 Replies)
Discussion started by: muru
2 Replies
Login or Register to Ask a Question