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.
10 More Discussions You Might Find Interesting
1. Programming
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
2. Programming
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
3. HP-UX
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
4. HP-UX
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
5. Programming
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
6. Shell Programming and Scripting
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
7. 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
8. HP-UX
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
9. Programming
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
10. Programming
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
kill(2) System Calls Manual kill(2)
Name
kill - send signal to a process
Syntax
#include <sys/types.h>
#include <signal.h>
kill(pid, sig)
pid_t pid;
int sig;
Description
The system call sends the signal sig to a process specified by the process number pid. The sig can be a signal specified in a call or it
can be 0. If the sig is 0, error checking is performed, but a signal is not sent. This call can be used to check the validity of pid.
The sending and receiving processes must have the same effective user ID, otherwise this call is restricted to the superuser with the
exception of the signal SIGCONT. The signal SIGCONT can always be sent to a child or grandchild of the current process.
If the process number is 0, the signal is sent to all other processes in the sender's process group.
If the process number is negative but not -1, the signal is sent to all processes whose process-group-id is equal to the absolute value of
the process number.
The above two options are variants of
If the process number is -1, and the user is the superuser, the signal is broadcast for all processes except to system processes and the
process sending the signal.
Processes may send signals to themselves.
Environment
System Five
POSIX
When your program is compiled in the System V or POSIX environment, a signal is sent if either the real or effective uid of the sending
process matches the real or saved-set-uid (as described in ) of the receiving process. In addition, any process can use a pid of -1, and
the signal is sent to all processes subject to these permission checks.
In POSIX mode, the pid argument is of type pid_t.
Return Values
Upon successful completion, a value of 0 is returned. Otherwise, a value of -1 is returned, and is set to indicate the error.
Diagnostics
The system call fails under the following conditions:
[EINVAL] The sig is not a valid signal number.
[EPERM] The sending process is not the superuser, and its effective user ID does not match the effective user ID of the receiving
process.
[ESRCH] No process can be found corresponding to that specified by pid.
See Also
execve(2), getpgrp(2), getpid(2), killpg(2), sigvec(2), pause(3)
kill(2)