Posté par Lucas .
En réponse au journal C.
Évalué à 1.
Voici un bout de code qui compile et qui montre le probleme (enfin, je suis pas sûr)
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(void)
{
int p;
p = open("plouf", O_CREAT | O_WRONLY | O_TRUNC);
close(STDOUT_FILENO); /* inutile, dup2 est sensé faire un close() anyway */
dup2(p, STDOUT_FILENO);
close(p);
write(STDOUT_FILENO, "prout\n", 6); /* marche */
printf("prout2\n"); /* marche pas */
close(STDOUT_FILENO); /* amusant :
si on commente cette ligne, le printf
fonctionne. */
# Re: C
Posté par Lucas . En réponse au journal C. Évalué à 1.
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(void)
{
int p;
p = open("plouf", O_CREAT | O_WRONLY | O_TRUNC);
close(STDOUT_FILENO); /* inutile, dup2 est sensé faire un close() anyway */
dup2(p, STDOUT_FILENO);
close(p);
write(STDOUT_FILENO, "prout\n", 6); /* marche */
printf("prout2\n"); /* marche pas */
close(STDOUT_FILENO); /* amusant :
si on commente cette ligne, le printf
fonctionne. */
return 0;
}