uses linux,stdio;

function specialcreat(pathname:string;mode:longint):integer;
var
  oldu,filedes:integer;
begin
  (* Установить маску создания файла равной нулю *)
  oldu:=umask(0);
  if oldu = -1 then
  begin
    perror('Ошибка сохранения старой маски');
    specialcreat:=-1;
    exit;
  end;
  (* Создать файл *)
  filedes:=fdopen(pathname, Open_WRONLY or Open_CREAT or Open_EXCL, mode);
  if (filedes = -1) then
    perror ('Ошибка открытия файла');
  (* Восстановить прежний режим доступа к файлу *)
  if (umask (oldu) = -1) then
    perror ('Ошибка восстановления старой маски');
  (* Вернуть дескриптор файла *)
  specialcreat:=filedes;
end;

begin
  specialcreat('sc_file', 0);
end.
