LINUX.ORG.RU

[Perl] Inappropriate ioctl for device

 


0

1

При вызове system() из дочернего процесса интерпретатора perl возвращается ENOTTY. Собственно, никакой ввод данных не планируется, но запускаемые программы его подразумевают. Пробовал переназначать STDIN в дочке - не помогает.

Ответ на: комментарий от arsi
sub fork_task {
 if($chpid = fork) {
  ## Parent
  
 } else {
  ## Kid
  # open(STDIN, '/dev/null'); ## Не поможет =(
  run_task();
  exit;
 }
}

sub run_task {
 system "mount ...";
 if($? == -1) {
  printf "Error while mounting: $!\n";  ## $! == "Inappropriate ioctl for device"
 }
}
markevichus ★★★
() автор топика
Ответ на: комментарий от markevichus

дык это.

Попробуй этот самый

mount ...

запустить ручками из консоли из-под того же пользователя в той же рабочей директории.

Сдаётся мне, перл тут не при чем.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от arsi

Хм.. да, конкретный пример не воспроизводит ошибку. Попробую покапать дальше.

markevichus ★★★
() автор топика

Пока забил и поставил проверку на ошибку: если ENOTTY, то забить на неё. Времени нету.

markevichus ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.