Linux.com

calling system with linux and C

Link to this post 27 Aug 11

I think we got things messed up a bit in this thread.

I don't think actual syscalls as these: http://syscalls.kernelgrok.com/ has much to do with it.

You can read more about system calls at:
http://en.wikipedia.org/wiki/System_call

This is what we talking about:

... system is a function used to execute subprocesses and commands ...

http://en.wikipedia.org/wiki/System_%28C_standard_library%29

So you can use it to run non C commands, witch I was trying to say earlier. And then it all depends on what system and whats installed so you don't want to use it if you can avoid it and if you need portability.

This works in Linux:


#include <stdio.h> // requred for printf.
#include <stdlib.h> // required for system.

// See http://en.wikipedia.org/wiki/System_%28C_standard_library%29

int main( int argc, char *argv[] ){
printf ("Text to print.");
getchar();
system("clear"); // clear is a terminal command in Linux. /usr/bin/clear
return 0;
}

Helpful list of C functions:
http://en.wikipedia.org/wiki/List_of_C_functions

Link to this post 30 Aug 11

I don't think so, the "pause" button will work in terminal. And as Marc and Aron mentioned, there is a BIG difference when running a program in different platforms.

I don't know why you are using W******s to do 'C' progamming.

Use Linux terminal, where the C language itself developed/Enhanced.

Well, according to me,


nread=read(,,,,)

is a system call. Not,

system("clear")

Because, "system" is a library, which can be used to execute any shell commands from program,if we want. So, I won't say "system" is a system call. just my opinion Aron.
And thanks for the link Aron.

Richard, if you want Dennis Ritchie book soft copy, let me to know. I have that.

Thanks

Link to this post 30 Aug 11

A syscall is calling something that the kernel does, isn't it?

Link to this post 31 Aug 11

marc wrote:

A syscall is calling something that the kernel does, isn't it?

yes. To be more specific, system call is the entry ticket/point to the Kernel space from the user space. Mostly, we should avoid using system calls, unless we know , what we are doing. Always there should be a remedy option to achieve those things. Like , dmesg, passwd etc.

But, if we are doing coding work, then most of the time we need to play with system call. That will be interesting :lol:

Link to this post 01 Sep 11

chekkizhar wrote:


Because, "system" is a library, which can be used to execute any shell commands from program,if we want. So, I won't say "system" is a system call. just my opinion Aron.

Ok so we have the same opinion, did I miss something?

chekkizhar wrote:


Well, according to me,
[code]
nread=read(,,,,)
[/code]
is a system call.

I don't agree with you on that, it's a C wrapper function to a system call.

It should be noted that the terms "system call" and "syscall" are often incorrectly used to refer to the aforementioned C standard library functions, particularly those that act as a wrapper to corresponding system calls with the same name.

http://en.wikipedia.org/wiki/System_call#The_library_as_an_intermediary

chekkizhar wrote:


And thanks for the link Aron.

Richard, if you want Dennis Ritchie book soft copy, let me to know. I have that.

Happy provider of links :)

I have planed to get a hard copy of K&R in a long time, I have to buy it one day.
I guess that soft copy is copyrighted right?

Link to this post 01 Sep 11

asedt wrote:


[b]chekkizhar wrote:[/b]
[quote]
Well, according to me,
[code]
nread=read(,,,,)
[/code]
is a system call.


I don't agree with you on that, it's a C wrapper function to a system call.

[/quote]
well, fread-->read-->sys_read. This is the internal flow. And upto I know, read is a system call . One more easy way to agree.

#man read

will open read man page, well second category[page]
and

#man man

will tell, second page is for system call. ;) Easy right?


I have planed to get a hard copy of K&R in a long time, I have to buy it one day.
I guess that soft copy is copyrighted right?

I have sent one copy to your mail id. No need to waste your valuable money. If you feel anything important, you can take that page alone a print out, for example operator precedence table. :)

Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board