Help with Execl system call in a C program?

 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions Help with Execl system call in a C program?
# 8  
Old 04-22-2014
Quote:
Originally Posted by miniviking10
but he went on the give me an example of using execl using a built-in command(date) when I specifically said in the OP that I already have been given an example of using execl with a command ("The only example done in class by the professor was calling the ps command which is a command and not a script.")
It seems to be clearer now where your problem was: between what you called "built-in" programs (I'd call it "system provided executables" and other executable programs there is absolutely no difference. You can (and you found that out yourself already) treat a shell script the same way you treat any other executable, binary or not.

The only difference is that binaries are directly exectuable: they consist of code natively executable on the processor, so once they get loaded they can be executed by it. In contrast scripts are input files for a certain binary - the shells binary, to be precise.

When you execute a shell script the OS will determine its filetype (there is a set of rules laid down in "/etc/magic") and if it comes to the conclusion it is a shell script it will load its default shell and feed it the script as input. If you want to override this and execute it with a different shell (or any other different binary or because your "/etc/magic" lacks the rule to identify what filetype your script is) you can use a "shebang" to specify the commando processor to feed the script to:

Code:
#! /path/to/some/shell/binary
... rest of the script...

will first load this binary and the feed it the scripts text as input. Because for the script language "#!" is still a comment it won't bother the shell at all.

By the way, perderabo has written a whole article about shebangs in the Frequently-Asked-Questions board: The Shebang explained

I hope this helps

bakunin
These 2 Users Gave Thanks to bakunin For This Post:
# 9  
Old 04-22-2014
Makes more sense now, thanks.
# 10  
Old 04-24-2014
The exec() in the kernel uses a simple rule, like the rules in /etc/magic. While /etc/magic is only used by the file command.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

call program

I would need to call the program 'ethtool' in my C++ program, does anyone know how to do that (if its even possible)? (1 Reply)
Discussion started by: Freaky123
1 Replies

2. Shell Programming and Scripting

printf before execl system call

main() { printf("before execl"); execl("/home/nirmala/os/fact","fact"); printf("this line will not be printed"); } for the above program ,the obj file of fact.c is getting loaded correctly.am getting the output as... factorial =6 but in ouput am not getting the string given in... (2 Replies)
Discussion started by: pnirmala
2 Replies

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

4. Programming

Notification email in C program, via system call? or?

Hello everyone! I'm quite new here, but this forum helped me a lot before without registering :-) I'll go directly to my problem, I have been searching a bit about this issue but I was not successful. I need to write a program in C code to notificate me (to my email) when some action is done... (7 Replies)
Discussion started by: RoNNo
7 Replies

5. Shell Programming and Scripting

Call a mainframe program

Is it possible to call a mainframe program in UNIX script. I am using HP-UNIX. If so can any let me know the way to do it. (1 Reply)
Discussion started by: atlantis
1 Replies

6. Shell Programming and Scripting

Run shell script from C program by calling fork and execl

I need to write a c program that uses the fork and excel system calls to run the shell script mode invoked like this: "./mode 644 ls -l" (that is the argumetns will always be 644 ls -l) here's the mode script: #!/bin/sh octal="$1" shift find . -maxdepth 1 -perm $octal -exec $@ {} \; ... (3 Replies)
Discussion started by: computethis
3 Replies

7. Programming

A question about the system call mount in a C program

Dear all, Currently I'm working on a C program (OS = ubuntu 9.0.4)in which a USB key will be mounted and umounted for several times. I read the man page of the mount system call. I use the following test code #include <sys/mount.h> int main(int argc, char *argv) { if... (5 Replies)
Discussion started by: dariyoosh
5 Replies

8. Shell Programming and Scripting

how to call another program

Hi, I would like to know how to call a program "cmp_size" ... where to put in progam to run it ex: program checkdisk is below, and it will call a nother problem "cmp_size" Do I just put the cmp_size program at the end of this program. Thank you very much, # check all directory for size... (3 Replies)
Discussion started by: xitrum
3 Replies

9. Programming

parent not waiting until child complete executing another program through execl()

Hi, I am calling a program that greps and returns 72536 bytes of data on STDOUT, say about 7000 lines of data on STDOUT. I use pipe from the program am calling the above program. Naturally, I execute the above program (through execl() ) throught the child process and try to read the... (4 Replies)
Discussion started by: vvaidyan
4 Replies

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