- 论坛徽章:
- 0
|
我遇到这样的问题,我有一个这样的结构:
typedef struct A *A
#define A aaa
struct A
{
int len;
FILE *fp;
int sockfd;
};
A create_aaa( char* url)
{
A m_temp =NULL;
m_temp = (A)malloc(sizeof(*m_temp));
if (!m_temp)
return -1;
m_temp->len=0;
m_temp->fp = NULL;
m_sockfd=0;
m_temp->fp = fopen("path_and_file_name", "rb");
if (!m_temp->fp)
{
free(m_temp);
return -1;
}
do something with sockect.
return m_temp;
}
#undef A
|
但是,当我在其它函数中,用create_aaa 生成一个aaa,并且通过aaa->fp来读取文件里的内容,或者用aaa->sockfd来读取socket上的数据的时候就不行了。但是无论aaa->fp还是aaa->sockfd都不是NULL和0,它们确实是合法的描述符。请问这是为什么?
[ 本帖最后由 napleon 于 2010-1-18 21:25 编辑 ] |
|