linux c에서 file length 길이 구하는 함수 있으면 가르쳐주세요.. window에서는 filelength() 함수가 있는데 linux에서는 않 되네요.
아래와 같이 하긴 했는데 따로 길이 구하는 함수가 있는지 궁금합니다.
long len = leeek(fh, 0L, SEEK_END) - 1;
stat이나 fstat 을 쓰심 될듯 싶네여. 파일 정보 중 size가 있으니까 성공적인 함수 호출 후 그 필드를 참조하세요.
#include #include #include #include #include long filesize (char *name); long filesize (char *name) { long size; int flag; struct stat buf; flag = stat (name,&buf); if (flag == -1) return -1; size = buf.st_size; return (size); } int main (int argc, char *argv []) { long size; size = filesize ("./a.txt"); if (size != -1) printf ("Size = %ld\n", size); else printf ("File Not Found\n"); }
fpos_t filelength;
FILE* fp = fopen("test", "r");
fseek(fp, 0, SEEK_END);
fgetpos(fp, &filelength);
int length = (int)filelength.__pos;
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
Re: [질문] linux c에서 file length 구하는 함수?
stat이나 fstat 을 쓰심 될듯 싶네여.
파일 정보 중 size가 있으니까 성공적인 함수 호출 후
그 필드를 참조하세요.
Re: [질문] linux c에서 file length 구하는 함수?
#include
#include
#include
#include
#include
long filesize (char *name);
long filesize (char *name) {
long size;
int flag;
struct stat buf;
flag = stat (name,&buf);
if (flag == -1) return -1;
size = buf.st_size;
return (size);
}
int main (int argc, char *argv []) {
long size;
size = filesize ("./a.txt");
if (size != -1) printf ("Size = %ld\n", size);
else printf ("File Not Found\n");
}
fpos_t filelength; FILE* fp
fpos_t filelength;
FILE* fp = fopen("test", "r");
fseek(fp, 0, SEEK_END);
fgetpos(fp, &filelength);
int length = (int)filelength.__pos;
댓글 달기