1 UNIX: processes Maria Hybinette
1730 UNIX System Programming: Processes Maria Hybinette 1
UNIX System Programming UNIX System Programming
- Objectives
Objectives
– – look at how to program UNIX processes look at how to program UNIX processes – – fork() and exec() fork() and exec()
Processes
1730 UNIX System Programming: Processes Maria Hybinette 2
- 1. What is a Process?
- 1. What is a Process?
2.
- 2. fork()
fork()
- 3. Example:
- 3. Example: talkto.c
talkto.c
4.
- 4. exec()
exec()
5.
- 5. wait()
wait()
- 6. Process Data
- 6. Process Data
- 7. Special Exit Cases
- 7. Special Exit Cases
- 8. Process IDs
- 8. Process IDs
1730 UNIX System Programming: Processes Maria Hybinette 3
Overview Overview
- 1. What is a Process?
- 2. fork()
- 3. Example: talkto.c
- 4. exec()
- 5. wait()
- 6. Process Data
- 7. File Descriptors across Processes
- 8. Special Exit Cases
- 9. IO Redirection
- 10. User/Group ID real and effective
continued
1730 UNIX System Programming: Processes Maria Hybinette 4
- 1. What is a Process?
- 1. What is a Process?
- A process is an executing program.
A process is an executing program.
- A process:
A process:
$ cat file1 file2 &
- Two processes:
Two processes:
$ $ ls | wc - l
- Each user can run many processes at once
Each user can run many processes at once (e.g. using (e.g. using &
&)
)
1730 UNIX System Programming: Processes Maria Hybinette 5
A More Precise Definition A More Precise Definition
- A process is the
A process is the context context (the (the information/data) maintained for an information/data) maintained for an executing program. executing program.
1730 UNIX System Programming: Processes Maria Hybinette 6
What makes up a Process? What makes up a Process?
- program code
program code
- data variables
data variables
- pen files (file descriptors)
- pen files (file descriptors)
- an Environment (environment variables;