мета-данные страницы
  •  

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

c:c_ultimate_guide:errno.h [2025/11/25 14:11] – создано radi0devc:c_ultimate_guide:errno.h [2025/11/25 16:39] (текущий) radi0dev
Строка 49: Строка 49:
 <code c> <code c>
 #include <stdio.h> #include <stdio.h>
 +#include <stdlib.h>
 #include <errno.h> #include <errno.h>
-#include <string.h> 
  
-int main(void) { +int main(int argc, const char * argv[] 
-    FILE *fopen("no_such_file.txt", "r"); +
-    if (!f) { +    // Generate unique filename. 
-        /errno установлен функцией fopen */ +    char *file_name tmpnam((char[L_tmpnam]){0}); 
-        perror("fopen"); /* выводит "fopen: <текст ошибки>" */ +    
-        /* или получить строку безопасно */ +    errno = 0; 
-        char buf[128]; +    FILE *file = fopen(file_name, "rb"); 
-        #if defined(__GLIBC__+ 
-            /* GNU-специфично: strerror_r может вернуть указатель *+    if (file{ 
-            char *msg = strerror_r(errno, buf, sizeof buf); +        // Do something useful.  
-            fprintf(stderr, "Ошибка: %s\n", msg); +        fclose(file); 
-        #else +    } else { 
-            if (strerror_r(errno, buf, sizeof buf== 0) +        perror("fopen() ");
-                fprintf(stderr, "Ошибка: %s\n", buf)+
-        #endif +
-        return 1;+
     }     }
-    fclose(f); +  
-    return 0;+    return EXIT_SUCCESS;
 } }
 </code> </code>