如何在C中调用fwrite函数后成功写入检查?

如何在C中调用fwrite函数后成功写入检查?,c,fwrite,C,Fwrite,我在一个网站上找到了以下代码: struct person { int id; char fname[20]; char lname[20]; }; int main () { FILE *outfile; // open file for writing outfile = fopen ("person.dat", "w"); struct person inpu

我在一个网站上找到了以下代码:

    struct person 
{
    int id;
    char fname[20];
    char lname[20];
};
  
int main ()
{
    FILE *outfile;
      
    // open file for writing
    outfile = fopen ("person.dat", "w");
  
    struct person input1 = {1, "rohan", "sharma"};
      
    // write struct to file
    fwrite (&input1, sizeof(struct person), 1, outfile);

     if(fwrite != 0) 
        printf("contents to file written successfully !\n");

    return 0;
}

  • 如果(fwrite!=0)行是否正确
  • 我们是否可以比较函数名本身(
    fwrite
  • 在这种情况下,
    fwrite
    的值是多少

  • 不,那绝对不是正确的方法。正确的方法是:

    if(fwrite(&input1, sizeof(struct person), 1, outfile)) != 1) {
        /* Error writing */
    }
    
    但为了避免重复的幻数,这会更好:

    size_t num = 1;
    if(fwrite(&input1, sizeof(struct person), num, outfile)) != num) {
    
    我发现很难相信任何网站会发布这样的垃圾代码。我知道Geeksforgeks不太值得信任,但这太糟糕了。这在很多方面都是错误的

    如果(fwrite!=0)
    是一个完全没有意义的检查。如果
    fwrite!=0将计算为false,这意味着对写入的函数调用将失败。该检查基本上意味着“是否写入空指针?”如果库函数是空指针,则说明确实有问题

    fwrite
    返回写入的元素数,在本例中应为一个元素


    我之前写过一篇文章,但现在我需要将Geeksforgek添加到我建议远离的资源列表中。

    不,这绝对不是正确的方法。正确的方法是:

    if(fwrite(&input1, sizeof(struct person), 1, outfile)) != 1) {
        /* Error writing */
    }
    
    但为了避免重复的幻数,这会更好:

    size_t num = 1;
    if(fwrite(&input1, sizeof(struct person), num, outfile)) != num) {
    
    我发现很难相信任何网站会发布这样的垃圾代码。我知道Geeksforgeks不太值得信任,但这太糟糕了。这在很多方面都是错误的

    如果(fwrite!=0)
    是一个完全没有意义的检查。如果
    fwrite!=0将计算为false,这意味着对写入的函数调用将失败。该检查基本上意味着“是否写入空指针?”如果库函数是空指针,则说明确实有问题

    fwrite
    返回写入的元素数,在本例中应为一个元素


    我以前写过一篇文章,但现在我需要将Geeksforgek添加到我推荐的远离的资源列表中。

    C编译器可以回答所有问题。有趣的是,这是一个什么网站?这段代码是错误的,实际上并没有检查编写的成功与否。我建议看一看
    fwrite
    的手册页。我在这里找到了代码:我对此投了赞成票,因为我认为最好能找到提供这种垃圾代码的网站。一个C编译器可以回答所有的问题。有趣的是,什么是网站?这段代码被破坏了,实际上并没有检查编写的成功与否。我建议看一下
    fwrite
    的手册页。我在这里找到了代码:我对此投了更高的票,因为我认为调用提供这种垃圾代码的网站是很好的