gpt4 book ai didi

c - errno、strerror 和 Linux 系统调用

转载 作者:可可西里 更新时间:2023-11-01 11:44:37 26 4
gpt4 key购买 nike

在使用 CRT 函数(如 fopen())后,我可以使用 strerror() 获取 errno 值的文本表示。如果我使用 open() Linux 系统调用而不是 CRT 函数,它也会在失败时设置 errno 值。将 strerror() 应用于此 errno 值是否正确?如果不是,是否有一些 Linux 系统调用,其作用与 strerror() 相同?

最佳答案

是的,你的代码可能是这样的(未经测试):

   #include <stdio.h>
#include <errno.h>
#include <string.h> // declares: char *strerror(int errnum);

FILE *
my_fopen ( char *path_to_file, char *mode ) {
FILE *fp;
char *errmsg;
if ( fp = fopen( path_to_file, mode )) {
errmsg = strerror( errno ); // fopen( ) failed, fp is set to NULL
printf( "%s %s\n", errmsg, path_to_file );
}
else { // fopen( ) succeeded
...
}

return fp; // return NULL (failed) or open file * on success
}

关于c - errno、strerror 和 Linux 系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5685973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com