Thread Tools Search this Thread
Top Forums Programming ANSI C vs POSIX
# 1  
Old 11-04-2002

can somebody explain about the ANSI C vs POSIX. say i was using open and fopen, i know that open is POSIX, and fopen is ANSI C. i read that that POSIX is a system call and ANSI C is like a standard library function. wouldn't the fopen function has to call on open function anyway to open any kind of file? what's the difference between using open and fopen?
I guess i'm not sure what system call mean.
any article about the difference between the two will be very helpful.
# 2  
Old 11-04-2002
System calls (open, creat, unlink, read etc) as the name suggests are calls to the system - in case of UNIX system, the UNIX kernel...

Part of the kernel consists of a collection of low level procedures through which processes can access resources. These procedures are called system calls and they are the primary means for a program to interact with other parts of the system. System calls are listed in section 2 of the manual pages. Any time that a program wishes to do anything beyond its own process environment, it must use system calls...

Many programs use (and must use sometimes) system calls... you can see what system calls are made by a common UNIX program using "trace" command (strace on linux), eg. "trace ls"..

since system calls are the only way to "talk" to the kernel, even the library functions doing system interactions also have to use them.. the purpose of library functions is two fold...

- Because they form the lowest level of interaction, system calls are very simplistic and generic. It would be very tedious to have to write all of your programs using only system calls. Thus procedures and functions (like fopen) for the most common tasks have already been written and stored in libraries - for example fopen() for open(), scanf(), getchar() for read().

- system calls are platform / implementation specific, also you are not assured to find the same naming for system calls on all platforms... but the ANSI standard library functions assure you to have the same functional interface on every platform - UNIX or otherwise...

# 3  
Old 11-05-2002
Ansi C has to work just about everywhere. So it assumes only a simple view of its environment. Posix on the other hand assumes a very powerful operating system.

As one example, look at signals. With posix you can send a signal to another process via the kill() system call. You specify which process gets the signal by supplying a pid. Ansi c only has a wimpy raise() which lets a process send a signal to itself. This is because Ansi C does not assume that it is even possible to run several processes at once. You won't find a pid in any Ansi C call. Posix demands multiple processes. Ansi C does not.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

C fdopen with and without -ansi

I have very little experience with gcc compilation under different environments, so please bear with me. I carried over 20 years old project into Ubuntu 18.04, it has old style K&R parameters, no function declarations to speak of, many functions without return are not declared void, and on and... (8 Replies)
Discussion started by: migurus
8 Replies

2. Programming

why the implementatoin of Bakery algorithm in ANSI C does not work in ANSI C

I follow the description of wiki (Lamport's bakery algorithm - Wikipedia, the free encyclopedia), then implement that algorithm in C, but it doesn't work, Starving is still here, is the implementation worry? Only print out: Thread ID: 0 START! Thread ID: 0 END! Thread ID: 0 START!... (2 Replies)
Discussion started by: sehang
2 Replies

3. HP-UX

HP-UX ansi c precompiler

Hi, How can i find which ansi c precompiler are installed on my hp-ux b11.23 itanuim machine ? Thanks (3 Replies)
Discussion started by: yoavbe
3 Replies

4. HP-UX


I want to convert a file from Unix-ANSI to PC-ANSI format. How can i achieve that? (0 Replies)
Discussion started by: ssmallya
0 Replies

5. Shell Programming and Scripting

Convert file from Unix - ANSI to PC - ANSI

Hi, I am creating a file in Unix using a shell script. The file is getting created in the Unix - ANSI format. My requirement is to convert it to the PC - ANSI format. Can anyone tell me how to do this? Thanks, Sunil (0 Replies)
Discussion started by: ssmallya
0 Replies

6. Programming

hint on ansi c

I am a student. And need help on following program. I want to make a c program. I have to scan a sentence and I have to interchange a word from that sentence. Example: Scan the sentence is " Drilling machine and Milling machine " . Replace the word "machine" by "operation". And output should... (2 Replies)
Discussion started by: dhaval chevli
2 Replies

7. HP-UX

ANSI / C Compiler for HP-UX 11.11

Good Day I downloaded Server Evaluation copy of C/ANSI compiler, but when I try to compile a file with it, it gives me following error - (for HP-UX 11.11 v1 PA-RISC) Internal Error: Codeword file /opt/ansic/newconfig/ansic.cwd missing or empty. Detailed Errors are as follows Internal... (3 Replies)
Discussion started by: shawnbishop
3 Replies

8. HP-UX

ansi problem

Hi! Can anyone help me with the problem i am having. Im new to hpux and i am trying to set up the programs i use. One such program is the irc client BitchX, ive ran it on several pc/sun boxes with no problems. On my c360 with an fx6 card and a eizo f56 17in monitor (1024x768 85hz vesa) the ansi... (0 Replies)
Discussion started by: Lewis
0 Replies

9. Programming

Ansi C

Dear All, I have to develope some C functions in Unix for a Magic program. The original MSE code which compiles the attached C program uses a +z option, but the cc compiler don't know this. The complete command in the compiler script is 'cc -c -Aa +z myfile.c'. The warning message is 'The -z... (4 Replies)
Discussion started by: Frankie
4 Replies

10. Programming

K&R vs. ANSI

To anyone that can answer this: Are the differences great between the ANSI and K&R standard? What are some of the major differences between them?? -REM (1 Reply)
Discussion started by: REM
1 Replies
Login or Register to Ask a Question