打印结束印刷,我创建了这个功能打印文件内容:文本时,通常应在顶部
void afficher (char * nomFichier){
if(nomFichier == NULL)
printf("Erreur : %s\n",nomFichier);
else
{
char buf[15];
int nb;
int fd = open(nomFichier,O_RDONLY);
if(fd == -1) printf ("Erreur ouverture : %s\n",nomFichier);
else
{
printf("Fichier : %s\n",nomFichier);//print the file name
while((nb = read(fd,buf,15)) > 0){
write(1,buf,nb);
}
printf("\n");
close(fd);
}
}
}
的问题是,当我在程序中调用这个函数有DUP2' ED标准输出到文件(在此CAS fichierSortie)
int fd = open(fichierSortie, mode, 0666);
if(fd == -1) // erreur
Erreur("Erreur lors de création du fichier : ",2);
printf("%d\n",dup2(fd,1)); // on redirige la sortie standard
close(fd);
afficher(filename);
我得到这个:
line1
line2
last line of the file
Fichier : filename
,但通常我应该得到
Fichier : filename
line1
line2
last line of the file
感谢
我很难理解你在做什么 - 你认为你可以提供更多的上下文吗?谢谢。 –
我觉得现在清楚不是吗? –