我需要使用stat()找到命令行中给出的文件或目录的大小.它适用于文件(相对路径和绝对路径),但是当我给出一个目录时,它总是返回512或1024的大小.
如果我打印目录中的文件,它如下所示:
Name : .
Name : ..
Name : new
Name : new.c
Run Code Online (Sandbox Code Playgroud)
但实际上只有new和new.c文件存在.为此,即使我在目录中放置了更多文件,大小也会返回512.这是我的代码片段:
if (stat(request.data,&st)>=0){
request.msgType = (short)0xfe21;
printf("\n Size : %ld\n",st.st_size);
sprintf(reply.data,"%ld",st.st_size);
reply.dataLen = strlen(reply.data);
}
else{
perror("\n Stat()");
}
}
Run Code Online (Sandbox Code Playgroud)
我哪里做错了???
这是我的要求,回复结构:
struct message{
unsigned short msgType;
unsigned int offset;
unsigned int serverDelay;
unsigned int dataLen;
char data[100];
};
struct message request,reply;
Run Code Online (Sandbox Code Playgroud)
我在unix os中的gcc编译器中运行它.