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:
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:
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)
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)
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)
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)
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)
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)
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)
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)