日期:2014-05-16  浏览次数:20720 次

struct dirnet定义
刚开始学习linux下编程,搭建了开发环境,抄了一小段代码,可就是编译不过,
C/C++ code
#include <iostream>
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>

using namespace std;

int main()
{
    DIR *dp;
    struct dirnet *dirp;
    if((dp = opendir("/work"))== NULL)
    {
        cout << "can't open /work" << endl;
    }

    while((dirp = readdir(dp)) != NULL)
    {
        printf("%s\n", dirp->d_name);
    }
    cout << "Hello World!" << endl;
    return 0;
}


可就是编译不过,错误为
cannot convert 'dirnet *' to 'dirnet *' in assignment;
invalid use of incomplete type 'struct dirnet';
forward declaration of 'struct dirnet';

我发现系统中有/usr/include/dirnet.h 和/usr/include/bits/dirnet.h两个头文件,dirnet结构体是在后一个
头文件中定义的 ,但是不能include后一个头文件。熟悉的给讲解下呀!

------解决方案--------------------
#include <bits/dirnet.h>
------解决方案--------------------
你写错了吧
struct dirnet *dirp; ==> struct dirent *dirp;