Allora, ho scoperto stampando il file descriptor (intero) dopo la open (ho provato anche con la creat), che il suo valore è 0! (ecco perchè stampa a terminale) mentre con altre open fatte da altre parti, il file descriptor tornato è 4 e quindi funziona.
Quindi pare che addirittura si chiudano i file descriptor standard...
Boh!
HELP!