私はファイルを開いて、そこに何かを書きたいと思っています。問題は、何らかの理由で fd2 が 0 であることです。ファイルに書き込む代わりに、端末に書き込みます。コードのどこにも close(0) はありません。なぜ私はfd = 0を取得し、たとえば3ではありません.端末に書き込む理由は、fdの値がゼロであるためですか? fd = 0が標準入力用であることは知っていますが、
何か案は?ありがとうございました。
if ((fd2 = open(logFile, O_RDWR |O_APPEND | O_CREAT , 0666) == -1))
DieWithError("open() failed");
printf("FD2 = %d",fd2); //returns me zero
bzero(tempStr, sizeof(tempStr));
bzero(hostname, sizeof(hostname));
gethostname(hostname, sizeof(hostname));
sprintf(tempStr, "\n%sStarting FTP Server on host %s in port %d\n", ctime(¤time), hostname, port);
if (write(fd2, tempStr, strlen(tempStr)) == -1)
DieWithError("write(): failed");