Sponsored Content
Top Forums Programming Difference between system calls and normal functions in C Post 302571408 by Corona688 on Monday 7th of November 2011 09:41:16 AM
Old 11-07-2011
Quote:
Originally Posted by aarathy
hello all,
i'm a beginner in linux programming. I need to know what is the difference between system calls and normal functions like fopen, fread etc in C?Also how to set permissions by using open system call?
System calls are fundamental, there's no deeper to go. Trace it with a debugger and you can't trace inside open(), because the program doesn't run open -- just tells the kernel to do so. The kernel just stops the program until it's finished.

fopen/fread/fclose are all just library functions inside libc. If they were built with debugging info, you could trace them. In the end, they use open/read/close like anything else which does file I/O.

To give permissions to open, you do open("filename", O_RDWR, 0666); where 0666 are octal permissions just like UNIX file attributes. They only matter when creating the file.
This User Gave Thanks to Corona688 For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

System Calls

What does the system call "dup" do? What is the difference between dup and dup2 I have a fair idea of what it does but I am confused when its coming down to the exact details... Please help me!:confused: (2 Replies)
Discussion started by: clickonline1
2 Replies

2. UNIX for Dummies Questions & Answers

Any difference between the CLI of Mac OS X and normal UNIX?

Any? (11 Replies)
Discussion started by: edward
11 Replies

3. UNIX for Dummies Questions & Answers

System calls for cp and mv

Which system calls are made for operations cp and mv (2 Replies)
Discussion started by: gaurava99
2 Replies

4. Solaris

System calls ?

where can i find the differences in System calls between solaris and aix? also is it possible to find a comprehensive list of them? (1 Reply)
Discussion started by: TECHRAMESH
1 Replies

5. UNIX Desktop Questions & Answers

Using system calls

Hi, I'm new to UNIX system calls. Can someone share your knowledge as to how exactly system calls should be executed? Can they be typed like commands such as mkdir on the terminal itself? Also, are there any websites which will show me an example of the output to expect when a system call like... (1 Reply)
Discussion started by: ilavenil
1 Replies

6. BSD

system calls

what is the functions and relationship between fork,exec,wait system calls as i am a beginer just want the fundamentals. (1 Reply)
Discussion started by: sangramdas
1 Replies

7. Solaris

difference between RPATH and normal linking while building

while building in solaris and going for dynamic linking whats the difference or advantage or disadvantage in using RPATH vs while linking package and dependency libraries i need a little explanation about this RPATH option specially and the difference with normal linking using -L (0 Replies)
Discussion started by: mobydick
0 Replies

8. UNIX for Dummies Questions & Answers

About system calls.

Hi all, I am new here . I want to know about system call in detail. As system calls are also function .How system identifies it.:) (2 Replies)
Discussion started by: vishwasrao
2 Replies

9. UNIX for Dummies Questions & Answers

system calls in C

Hello, how would i be able to call ps in C programming? thanks, ---------- Post updated at 01:39 AM ---------- Previous update was at 01:31 AM ---------- here's the complete system call, ps -o pid -p %d, getpit() (2 Replies)
Discussion started by: l flipboi l
2 Replies

10. UNIX for Dummies Questions & Answers

Difference between normal Execute permission and GUID

Hi, Any can explain the difference between the normal execute permission for the file and GUID of the file. Since the normal execute permission has right to execute file why there is need of providing GUID for the same file. Also share some examples for SUID and SGID programs. Regards... (3 Replies)
Discussion started by: ksgnathan
3 Replies
IO::File(3perl) 					 Perl Programmers Reference Guide					   IO::File(3perl)

NAME
IO::File - supply object methods for filehandles SYNOPSIS
use IO::File; $fh = IO::File->new(); if ($fh->open("< file")) { print <$fh>; $fh->close; } $fh = IO::File->new("> file"); if (defined $fh) { print $fh "bar "; $fh->close; } $fh = IO::File->new("file", "r"); if (defined $fh) { print <$fh>; undef $fh; # automatically closes the file } $fh = IO::File->new("file", O_WRONLY|O_APPEND); if (defined $fh) { print $fh "corge "; $pos = $fh->getpos; $fh->setpos($pos); undef $fh; # automatically closes the file } autoflush STDOUT 1; DESCRIPTION
"IO::File" inherits from "IO::Handle" and "IO::Seekable". It extends these classes with methods that are specific to file handles. CONSTRUCTOR
new ( FILENAME [,MODE [,PERMS]] ) Creates an "IO::File". If it receives any parameters, they are passed to the method "open"; if the open fails, the object is destroyed. Otherwise, it is returned to the caller. new_tmpfile Creates an "IO::File" opened for read/write on a newly created temporary file. On systems where this is possible, the temporary file is anonymous (i.e. it is unlinked after creation, but held open). If the temporary file cannot be created or opened, the "IO::File" object is destroyed. Otherwise, it is returned to the caller. METHODS
open( FILENAME [,MODE [,PERMS]] ) open( FILENAME, IOLAYERS ) "open" accepts one, two or three parameters. With one parameter, it is just a front end for the built-in "open" function. With two or three parameters, the first parameter is a filename that may include whitespace or other special characters, and the second parameter is the open mode, optionally followed by a file permission value. If "IO::File::open" receives a Perl mode string (">", "+<", etc.) or an ANSI C fopen() mode string ("w", "r+", etc.), it uses the basic Perl "open" operator (but protects any special characters). If "IO::File::open" is given a numeric mode, it passes that mode and the optional permissions value to the Perl "sysopen" operator. The permissions default to 0666. If "IO::File::open" is given a mode that includes the ":" character, it passes all the three arguments to the three-argument "open" operator. For convenience, "IO::File" exports the O_XXX constants from the Fcntl module, if this module is available. binmode( [LAYER] ) "binmode" sets "binmode" on the underlying "IO" object, as documented in "perldoc -f binmode". "binmode" accepts one optional parameter, which is the layer to be passed on to the "binmode" call. NOTE
Some operating systems may perform "IO::File::new()" or "IO::File::open()" on a directory without errors. This behavior is not portable and not suggested for use. Using "opendir()" and "readdir()" or "IO::Dir" are suggested instead. SEE ALSO
perlfunc, "I/O Operators" in perlop, IO::Handle, IO::Seekable, IO::Dir HISTORY
Derived from FileHandle.pm by Graham Barr <gbarr@pobox.com>. perl v5.14.2 2011-09-19 IO::File(3perl)
All times are GMT -4. The time now is 02:41 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy