Thanks! That works perfectly (code below with the O_DIRECT & O_ASYNC flags)
#!/usr/bin/perl use strict; use warnings; $|++; use Fcntl qw(:DEFAULT O_ASYNC O_DIRECT); use Sys::Mmap; my $FH; sysopen($FH, "./test.dat", O_WRONLY | O_TRUNC | O_CREAT | O_ASYNC | O_ +DIRECT, 0666); my $BUFSIZE = 1048576; my $BUFFER; mmap($BUFFER, $BUFSIZE, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, ST +DOUT) or die "Couldn't mmap\n"; substr($BUFFER, 0, $BUFSIZE) = "0"x$BUFSIZE; for (my $i = 0; $i < 20480; $i++) { my $written = syswrite($FH, $BUFFER, $BUFSIZE); die "System write error: $!\n" unless defined $written; }
Jason L. Froebe
Help find a cure for breast cancer! Net proceeds benefit the Susan G. Komen Breast Cancer Foundation and the National Philanthropic Trust. Help by donating - I'm walking 60 miles in 3 days in August 2007. (The day I return from TechWave is the first day of the Walk).
In reply to Re^2: O_DIRECT & O_ASYNC, Linux & Perl
by jfroebe
in thread O_DIRECT & O_ASYNC, Linux & Perl
by jfroebe
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |