2015-04-14 2 views
1

freopen return errno 14: это эквивалентно EFAULT - НЕОБХОДИМЫЙ АДРЕС Крест, составленный на Ubuntu. Выполненная на руку основе андроида устройства Kernel 3.0.23 перфорацияfreopen return errno 14 EFAULT: при выполнении. (arm, linux, android)

ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), not stripped 

Код:

if (!freopen(NULL, "rb", stdin)) { 
     return errno; 
    } 
+1

Это, кажется, отсутствует в актуальном вопросе :) – tolanj

ответ

1

первый параметр freopen() должен быть путь к файлу. Если вы передадите это как NULL, это, очевидно, требует неприятностей.

Чего вы хотите достичь?

+0

В соответствии с POSIX нулевое имя файла означает изменение режима существующего потока [который может быть или не поддерживаться] (http://pubs.opengroup.org /onlinepubs/9699919799/functions/freopen.html). – Notlikethat

+0

, если он не упоминается на странице руководства (это не так), он не поддерживается ... – mfro

+0

Я хочу снова открыть stdin в двоичном режиме. но когда я использую freopen и компиляции для моей руки, используя arm-linux-androideabi-gcc. Программа останавливается и возвращает errno 14. Но на моей машине ubuntu она работает отлично, как я хочу. –