Вот собсна код:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <fcntl.h>
int main() {
struct stat buf;
mode_t mode;
int n, fd, ret;
fd = open("/dev/random", O_RDONLY, 0666);
if(fd < 0) {
perror("open");
return 1;
}
if((ret = fstat(fd, &buf)) < 0) {
perror("fstat64");
return 1;
}
mode = buf.st_mode;
if(S_ISCHR(mode) || S_ISFIFO(mode) || S_ISSOCK(mode)) {
if(ioctl(fd, FIONREAD, &n) < 0) {
perror("ioctl");
return 1;
}
printf("ok, available %d bytes", n);
return 0;
}
printf("regular file");
return 0;
}
Оно говорит:
ioctl: Invalid argument
Что я неправильно делаю, где у меня ошибка?!!!
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Murr
Ответ на:
Re:
от Debugger
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от grustnoe
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Случайные числа и /dev/urandom (2005)
- Форум Как писать CD? ioctl? (2003)
- Форум SIGIO и чужой терминал (2008)
- Форум FIFO,write,read (2017)
- Форум вопрос про select() (2013)
- Форум non-blocking write (2011)
- Форум Системный вызов sendfile ??? (2008)
- Форум Семафоры (2005)
- Форум Как изменить максимальное число открытых файлов ? (2006)
- Форум sendfile из файла в файл не работает? (2006)