我打開一個文件,並想寫入一些東西。問題是由於某些原因,fd2是0.而不是在文件中寫入,它寫在終端上。我不會在我的代碼中的任何地方關閉(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");
什麼是'logfile'?它是'/ dev/console'嗎? –
如果你在Linux上,通過'strace'運行它。 –
logFile只是一個logFile.log的路徑 – Kelis