pause işlevi, bir sinyal eylemciyi çalıştırmak ya da süreci sonlandırmak gibi bir eylemi yerine getirmek üzere bir sinyalin gelmesini beklemek için kullanılır.
Sinyal, bir eylemci işlevi tetikliyorsa
pause döner. Bu başarısız bir dönüş olarak ele alınır (başarılı davranış, süreci sonsuza dek bekletmektir) ve işlev
-1 değeri ile döner. Hatta bir sinyal eylemci döndüğünde diğer ilkellerin çalışmalarına kaldıkları yerden devam edeceklerini belirtseniz bile (
Sinyallerle Kesilen İlkeller), bunun
pause üzerinde bir etkisi yoktur; bir sinyal geldiğinde daima başarısız olarak dönecektir.
Aşağıdaki errno değeri bu işlev içindir:
- EINTR
İşlev bir sinyal alarak kesintiye uğradı.
Sinyal sürecin sonlanmasına sebep oluyorsa pause dönmeyecektir (ister istemez).
Bu işlev çok evreli yazılımlar için bir iptal noktasıdır. Eğer evre pause çağrısı sırasında bazı özkaynakları (bellek, dosya tanımlayıcılar, semaforlar, v.s.) ayırıyorsa sorun çıkar. Evre iptal aldığı andan itibaren süreç sonlanana kadar bu özkaynaklar ayrılmış olarak kalacaktır. Bu tür pause çağrılarından kaçınmak için iptal eylemcileri kullanarak korunulmalıdır.
pause işlevi unistd.h dosyasında bildirilmiştir.