Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.149.255.162] |
|
Сообщ.
#1
,
|
|
|
Есть код:
int fdesc, readedBytes; char buf[5000]; ... if(fdesc = open(argv[1], O_RDONLY) == -1) { perror("file open"); return -1; } if((readedBytes = read(fdesc, &buf, 5000)) == -1) { perror("file read"); close(fdesc); return -1; } В результате read читает не файл, а ввод с клавы. В дебагере проверял - argv[1] стоит правильно, файл такой есть, права нормально и т.д. Никто не подскажет, чё за хрень происходит? Заранее спасибо. |
Сообщ.
#2
,
|
|
|
ответ в форуме "С/С++"
|
Сообщ.
#3
,
|
|
|
Ошибка в том, что в строке if(fdesc = open(argv[1], O_RDONLY) == -1) выражение fdesc = open(argv[1], O_RDONLY) НЕ ВЗЯТО В СКОБКИ !!!!!!!!!! В твоем случае fdesc == 0 что соответствеет stdin == как правило клавиатура.
|