このコードには close(2) が実装されています。多くの人が知っているように (私自身も含めて)、これは標準エラーを閉じますが、それを閉じることの主な影響は何ですか?
また、「main: Success」と表示されるのはなぜですか? すべてのディレクトリに「。」があるべきではありません。開くことができるディレクトリ?
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
int main() {
close(2);
if (fopen(".","r"))
{
printf("main: %s \n", strerror(errno));
}
return 0;
}
一方で
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
int main() {
close(2);
if (fopen(".","r"))
{
perror("main");
}
return 0;
}
これは何も印刷しません。なぜですか?