C
comp.unix.shell
I'm trying to get mmap to working, potentially large files.
Here's my data
[a0312850@LTA0312850 ~/tool_box]$ ls -l DATA/LaffAdd.1
-rwx------+ 1 a0312850 ???????? 255 Jul 24 2006 DATA/LaffAdd.1
Here's a snippett of my code
int main(int argc,char* argv[]) {
int token;
if (argc != 2) Help();
char* laff = argv[1];
fp = fopen(laff,"r");
struct stat st;
fstat(fileno(fp),&st);
buflen = st.st_size;
buffer = (char*)mmap(0,buflen,PROT_READ,MAP_SHARED,fileno(fp),0);
bufend = buffer + buflen;
long read = fread(buffer,1,buflen,fp); seg fault here
buflen is 255
Looking at buffer (in ddd) it appears to have mapped it into buffer
a bt shows
(gdb) bt
#0 0x61016545 in stack_info::walk () from /usr/bin/cygwin1.dll
#1 0x7c859dcc in OutputDebugStringA () from /cygdrive/c/WINDOWS/
system32/kernel32.dll
#2 0x40010006 in ?? ()
#3 0x00000000 in ?? ()
Here's my data
[a0312850@LTA0312850 ~/tool_box]$ ls -l DATA/LaffAdd.1
-rwx------+ 1 a0312850 ???????? 255 Jul 24 2006 DATA/LaffAdd.1
Here's a snippett of my code
int main(int argc,char* argv[]) {
int token;
if (argc != 2) Help();
char* laff = argv[1];
fp = fopen(laff,"r");
struct stat st;
fstat(fileno(fp),&st);
buflen = st.st_size;
buffer = (char*)mmap(0,buflen,PROT_READ,MAP_SHARED,fileno(fp),0);
bufend = buffer + buflen;
long read = fread(buffer,1,buflen,fp); seg fault here
buflen is 255
Looking at buffer (in ddd) it appears to have mapped it into buffer
a bt shows
(gdb) bt
#0 0x61016545 in stack_info::walk () from /usr/bin/cygwin1.dll
#1 0x7c859dcc in OutputDebugStringA () from /cygdrive/c/WINDOWS/
system32/kernel32.dll
#2 0x40010006 in ?? ()
#3 0x00000000 in ?? ()