Прототип системного вызова
#include <unistd.h>
int unlink(char *pathname);
Описание системного вызова
Системный вызов unlink служит для удаления имени, на которое указывает параметр pathname, из файловой системы.
Если после удаления имени счетчик числа жестких связей у данного файла стал равным 0, то возможны следующие ситуации:
Если в операционной системе нет процессов, держащих данный файл открытым, то файл полностью удаляется с физического носителя.
Если удаляемое имя было последней жесткой связью для регулярного файла, но какой-либо процесс держит его открытым, то файл продолжает существовать до тех пор, пока не будет закрыт последний файловый дескриптор, ссылающийся на данный файл.
Если имя относится к файлу типа socket, FIFO или к специальному файлу устройства, то файл удаляется независимо от наличия процессов, держащих его открытым, но процессы, открывшие данный объект, могут продолжать пользоваться им.
Если имя относится к файлу типа "связь", то он удаляется, и мягкая связь оказывается разорванной.
Системный вызов возвращает значение 0 при нормальном завершении и значение -1 при возникновении ошибки.