view release on metacpan or search on metacpan
GMOD/Util/CheckVersions.pm view on Meta::CPAN
sub read_symlink {
my ($self,$path) = @_;
my $realdir = -l $path ? readlink $path : $path;
my ($root) = $path =~ /(.*\/).*/;
my $full_path = $root . "/$realdir";
my @temp = stat($full_path);
my $modtime = localtime($temp[9]);
return ($realdir,$modtime);
}
view all matches for this distribution
view release on metacpan or search on metacpan
scripts/make_classes.pl view on Meta::CPAN
my $file = "$dir/$base.pm";
die "Couldn't find $file" unless -d $dir;
if (-e $file) {
# if the create script is newer than the .pm file redo the class
my $st_out = stat("$file");
my $st_in = stat("$CREATE");
# otherwise check each class's files
if ($st_in->mtime < $st_out->mtime) {
my @files;
# check the master column2name file
scripts/make_classes.pl view on Meta::CPAN
}
}
# go through the files and see if any are more recent
foreach (@files) {
die "Couldn't find $_" unless -e $_;
$st_in = stat($_);
last if $st_in->mtime > $st_out->mtime;
}
# skip this target if none of the files are more recent
if ($st_in->mtime < $st_out->mtime) {
scripts/make_classes.pl view on Meta::CPAN
my $pod = $base . '.pod';
# we only want to make a new pod file if the infile has been modified
# since we last ran created the pod file
if (-f "$PODROOT/$pod") {
my $st_out = stat("$PODROOT/$pod");
my $st_in = stat("$file");
if ($st_in->mtime < $st_out->mtime) {
print STDERR "Skipping $file (no change)\n" if $DEBUG;
next;
}
scripts/make_classes.pl view on Meta::CPAN
my $html = $base . '.html';
# we only want to make a new html file if the pod file has been changed
# since we last ran created the html file
if (-f "$HTMLROOT/$html") {
my $st_out = stat("$HTMLROOT/$html");
my $st_in = stat("$PODROOT/$pod");
if ($st_in->mtime < $st_out->mtime) {
print STDERR "Skipping $HTMLROOT/$html (no change)\n" if $DEBUG;
next;
}
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# If the script that is loading Module::Install is from the future,
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 and (stat($0))[9] > time ) {
die << "END_DIE";
Your installer $0 has a modification time in the future.
This is known to create infinite loops in make.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Bio/Gonzales/Domain/Identification/HMMER.pm view on Meta::CPAN
sub _create_cache_string {
my ( $self, $sequence_file, $k ) = @_;
return join "\t",
(
_basename_no_suffix($sequence_file) . "_" . stat($sequence_file)->size,
$k->{seq_id}, $k->{hmm_acc}, $k->{hmm_score}, $k->{from}, $k->{to}
);
}
sub _update_sequence_mark {
lib/Bio/Gonzales/Domain/Identification/HMMER.pm view on Meta::CPAN
sub _get_cached_hits {
my ( $self, $sequence_file ) = @_;
my @best_hits;
my $seq_file_id = _basename_no_suffix($sequence_file) . "_" . stat($sequence_file)->size;
open my $cache, '<', $self->discovered_cache_file
or croak "Can't open filehandle: $!";
while ( my $l = <$cache> ) {
my @rows = split /\t/, $l;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Bio/Graphics/FeatureFile.pm view on Meta::CPAN
$Storable::Eval = 1;
my $file = $has_libs && $args{-file} or return $self->_new(@_);
(my $name = $args{-file}) =~ s!/!_!g;
my $cachefile = $self->cachefile($name);
if (-e $cachefile && (stat(_))[9] >= $self->file_mtime($args{-file})) { # cache is valid
# if (-e $cachefile && -M $cachefile < 0) { # cache is valid
my $parsed_file = lock_retrieve($cachefile);
$parsed_file->initialize_code if $parsed_file->safe;
return $parsed_file;
} else {
lib/Bio/Graphics/FeatureFile.pm view on Meta::CPAN
my $file = shift;
my $mtime = 0;
for my $f (glob($file)) {
my $m = (stat($f))[9] or next;
$mtime = $m if $mtime < $m;
open my $fh,'<',$file or next;
my $cwd = getcwd();
chdir(dirname($file));
lib/Bio/Graphics/FeatureFile.pm view on Meta::CPAN
sub _stat {
my $self = shift;
my $file = shift;
defined fileno($file) or return;
my @stat = stat($file) or return;
if ($self->{stat} && @{$self->{stat}}) { # merge #includes so that mtime etc are max age
for (8,9,10) {
$self->{stat}[$_] = $stat[$_] if $stat[$_] > $self->{stat}[$_];
}
$self->{stat}[7] += $stat[7];
lib/Bio/Graphics/FeatureFile.pm view on Meta::CPAN
}
sub parse_fh {
my $self = shift;
my $fh = shift;
$self->_stat($fh);
local $/ = "\n";
local $_;
while (<$fh>) {
chomp;
$self->parse_line($_) || last;
lib/Bio/Graphics/FeatureFile.pm view on Meta::CPAN
=item $ctime = $features-E<gt>ctime
=item $size = $features-E<gt>size
Returns stat() information about the data file, for featurefile
objects created using the -file option. Size is in bytes. mtime,
atime, and ctime are in seconds since the epoch.
=back
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Bio/KBase/InvocationService/InvocationServiceImpl.pm view on Meta::CPAN
my @files;
my $dh;
opendir($dh, $dir) or die "Cannot open directory: $!";
while (my $file = readdir($dh)) {
next if ($file =~ m/^\./);
my($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime, $blksize, $blocks) = stat("$dir/$file");
my $date= strftime("%b %d %G %H:%M:%S", localtime($mtime));
if (-f "$dir/$file") {
push @files, { name => $file, full_path => "$fpath/$file", mod_date => $date, size => $size};
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 ) {
my $s = (stat($0))[9];
# If the modification time is only slightly in the future,
# sleep briefly to remove the problem.
my $a = $s - time;
if ( $a > 0 and $a < 5 ) { sleep 5 }
view all matches for this distribution
view release on metacpan or search on metacpan
mcprimers.pl view on Meta::CPAN
sub sanity_check_arguments {
(my $dev,my $ino,my $mode,my $nlink,my $uid,my $gid,my $rdev,my $size,
my $atime,my $mtime,my $ctime,my $blksize,my $blocks)
= stat(*STDIN);
if ($flag{filter} == 0 and $size > 0) {
die "\nError - Input is redirected and -filter flag not set\n\n";
}
}
view all matches for this distribution
view release on metacpan or search on metacpan
t/21_compressionBenchmark.t view on Meta::CPAN
system("gzip -f $RealBin/simulated.fastq"); # gzip first
system("zcat $RealBin/simulated.fastq.gz | perl -I$RealBin/../lib scripts/sortFastq.pl | gzip -fc > $RealBin/sorted.fastq.gz");
die if $?;
my $simulatedSize = (stat("$RealBin/simulated.fastq.gz"))[7];
my $sortedSize = (stat("$RealBin/sorted.fastq.gz"))[7];
my $reduction = sprintf("%0.2f",$sortedSize/$simulatedSize * 100);
diag "Filesize reduction when sorted: $reduction%";
cmp_ok($simulatedSize, '>', $sortedSize, "File sizes ($simulatedSize > $sortedSize, $reduction%)");
}
view all matches for this distribution
view release on metacpan or search on metacpan
int i;
/* checking for existance of file and its permissions */
if( file_name == NULL ) croak("readScf(...) : file_name is NULL");
file_stat = malloc(sizeof(struct stat));
i = stat(file_name, file_stat);
if( i == -1 ){
switch(errno){
case ENOENT :
croak("get_scf_pointer(...) : file %s doesn't exist\n", file_name);
break;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Bio/DB/Sam.pm view on Meta::CPAN
$result;
}
sub mtime {
my $path = shift;
(stat($path))[9];
}
1;
__END__
view all matches for this distribution
view release on metacpan or search on metacpan
scripts/plot_timings.R view on Meta::CPAN
## three dimensional plots as contourplots
ggplot(datOpenMP, aes(x = Workers, y = Num_threads, z = fitTime)) +
geom_contour(aes(colour = after_stat(level))) +theme_bw() + theme(
panel.grid.minor = element_blank(),
panel.grid.major = element_blank(),
axis.text.x = element_text(size = 8),
legend.position="bottom"
) +
scripts/plot_timings.R view on Meta::CPAN
units = "in",
dpi = 1200
)
ggplot(datOpenMP, aes(x = Workers, y = Num_threads, z = fitSpaceTime)) +
geom_contour(aes(colour = after_stat(level))) +theme_bw() + theme(
panel.grid.minor = element_blank(),
panel.grid.major = element_blank(),
axis.text.x = element_text(size = 8),
legend.position="bottom"
) +
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Bio/ToolBox/db_helper/bam.pm view on Meta::CPAN
my $bamfile = shift;
return if ( $bamfile =~ /^(?:http | ftp)/xi ); # I can't do much with remote files
# we will check the modification time to make sure index is newer
my $bam_mtime = ( stat($bamfile) )[9];
# optional index names
my $bam_index = "$bamfile.bai"; # .bam.bai
my $alt_index = $bamfile;
$alt_index =~ s/bam$/bai/i; # picard uses .bai instead of .bam.bai as samtools does
# check for existing index
if ( -e $bam_index ) {
if ( ( stat($bam_index) )[9] < $bam_mtime ) {
# index is older than bam file
print " index $bam_index is old. Attempting to update time stamp.\n";
my $now = time;
utime( $now, $now, $bam_index ) || Bio::DB::Bam->reindex($bamfile);
}
}
elsif ( -e $alt_index ) {
if ( ( stat($alt_index) )[9] < $bam_mtime ) {
# index is older than bam file
print " index $alt_index is old.\n";
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Bio/Tools/Phylo/PAML/Result.pm view on Meta::CPAN
}
}
if( $stats ) {
if( ref($stats) =~ /HASH/i ) {
while( my ($stat,$val) = each %$stats) {
$self->add_stat($stat,$val);
}
} else {
$self->warn("Must provide a valid hash reference initialize stats");
}
}
lib/Bio/Tools/Phylo/PAML/Result.pm view on Meta::CPAN
Args : (optional) sequence name to retrieve nt freqs for
=head2 add_stat
Title : add_stat
Usage : $result->add_stat($stat,$value);
Function: Add some misc stat valuess (key/value pairs)
Returns : none
Args : $stat stat name
$value stat value
=head2 get_stat
Title : get_stat
Usage : my $value = $result->get_stat($name);
Function: Get the value for a stat of a given name
Returns : scalar value
Args : name of the stat
=head2 get_stat_names
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 ) {
my $s = (stat($0))[9];
# If the modification time is only slightly in the future,
# sleep briefly to remove the problem.
my $a = $s - time;
if ( $a > 0 and $a < 5 ) { sleep 5 }
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Bio/Tools/Run/Infernal.pm view on Meta::CPAN
# set one if no file specified. output to
# outfile_name, returns Bio::SeqIO or (if -a is set)
# Bio::AlignIO
$factory->cmcalibrate($file); # calibrates specified cov. model; output to
# STDOUT
$factory->cmstat($file); # summary stats for cov. model; set one if no file
# specified; output to STDOUT
# run based on the setting of the program parameter
my $factory = Bio::Tools::Run::Infernal->new(-program => 'cmsearch',
lib/Bio/Tools/Run/Infernal.pm view on Meta::CPAN
}
=head2 cmstat
Title : cmstat
Usage : $obj->cmstat($seq)
Function: Runs Infernal cmstat and saves output
Returns : None
Args : None; set model_file() to use a specific model
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
Bio/DB/GFF/Adaptor/berkeleydb.pm view on Meta::CPAN
return $loaded;
}
sub _mtime {
my $file = shift;
my @stat = stat($file);
return $stat[9];
}
sub _index_file {
my $self = shift;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/BioX/Seq/Fetch.pm view on Meta::CPAN
my $fn_idx = $self->{fn} . '.fai';
$self->write_index if (! -e $fn_idx);
# make sure FASTA file is not newer than its index; otherwise index file
# may be out of date and cause silent corruption downstream
my $mtime_fas = stat($self->{fn})->mtime;
my $mtime_idx = stat($fn_idx)->mtime;
if ($mtime_fas > $mtime_idx) {
die "Index file exists but is older than FASTA file and probably out"
. " of date. Refresh or remove the existing index before"
. " proceeding.\n"
}
view all matches for this distribution
view release on metacpan or search on metacpan
script/filedetails.pl view on Meta::CPAN
my $basename = basename($file);
my $details = File::Details->new($file);
my ( $hash, $size, $ctime, $actime, $mtime ) = (
$details->hash, $details->size,
ctime( stat($file)->ctime ),
ctime( stat($file)->atime ),
ctime( stat($file)->mtime )
);
my $hsize = $human->format($size);
my $info = <<EOF;
view all matches for this distribution
view release on metacpan or search on metacpan
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Getting statistics
#_________________________________________
$evalue=$s;
$E_mult_factor1=1;
@output=@{&get_isearch_result_stat(\%stat2, \@pdbg_seqs, \$evalue,
\$base, \$E_mult_factor1, $leng_thresh, \%msp_00)};
%correct=%{$output[3]};
%final_stat_big_hash=(%final_stat_big_hash, %correct);
if($verbose){
@keys=sort keys %correct;
return(\%correcting_pairs);
}
#__________________________________________________________________
# Title : get_isearch_result_stat
# Usage : &get_self_isearch_stat(\%stat2, \@pdbg_seqs, \$evalue);
# Function :
# Example : Following input (hash eg: %stat2, input with the first word as key)
# will become columnar output.
#
# d1ash__ d1bam__ d1mba__ d2lhb__
elsif(-s $out_gz_name){ $existing_msp=$out_file_gz_name }
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# If the dates of files created are long ago, overwrite to refresh
#____________________________________________________________________
if( (localtime(time- (stat($existing_sso))[9]))[3] > $age_in_days_of_out_file ){
$over_write_sso_by_age='o';
}
if( (localtime(time- (stat($existing_msp))[9]))[3] > $age_in_days_of_out_file ){
$over_write_msp_by_age='o';
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# To check if the target seq DB is in ../
if(-s $out_sso_file){ $existing_sso=$out_sso_file }
elsif(-s $out_sso_gz_name){ $existing_sso=$out_sso_gz_name }
if(-s $out_msp_file){ $existing_msp=$out_msp_file }
elsif(-s $out_gz_name){ $existing_msp=$out_gz_name }
if( (localtime(time- (stat($existing_sso))[9]))[3] > $age_in_days_of_out_file ){
$over_write_sso_by_age='o';
}
if( (localtime(time- (stat($existing_msp))[9]))[3] > $age_in_days_of_out_file ){
$over_write_msp_by_age='o';
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# To check if the target seq DB is in ../
if(@_ < 2){ print "\n# if_file_older_than_x_days needs 2 args\n"; exit; }
my $file=${$_[0]} || $_[0];
$days=${$_[1]} || $_[1];
unless(-s $file){ print "\n# if_file_older_than_x_days: $file does NOT exist\n"; exit; }
if(lstat($file)){ # to handle Symbolyc link
print "\n# (i) if_file_older_than_x_days: running lstat\n";
$how_old_days=(localtime(time- (lstat($file))[9]))[3]; ## should be lstat not stat
}else{
print "\n# (i) if_file_older_than_x_days: running stat\n";
$how_old_days=(localtime(time- (stat($file))[9]))[3]; ## should be lstat not stat
}
if($how_old_days > $days and $how_old_days < 10000){
print "\n# if_file_older_than_x_days: $file is older than $days\n";
return(\$days);
}else{
$seq_file_msp_gz_name="$seq_name\.msp\.gz";
$first_char= substr("\U$seq_name", 0, 1);
if(-s "$first_char\/$seq_file_msp_name"){ $existing_msp_file="$first_char\/$seq_file_msp_name"; }
elsif(-s "$first_char\/$seq_file_msp_gz_name"){ $existing_msp_file="$first_char\/$seq_file_msp_gz_name"; }
if( (localtime(time- (stat($existing_msp_file))[9]))[3] > $age_in_days_of_out_file ) {
$overwrite_by_age='o';
print "\n# interm_lib_search: $seq_file_msp_name is older than $age_in_days_of_out_file days, ovrwrting\n";
}
if( !$over_write and (-s "$first_char\/$seq_file_msp_name" or -s "$first_char\/$seq_file_msp_gz_name")
$seq_file_msp_gz_name="$seq_name\.msp\.gz";
$first_char= substr("\U$seq_name", 0, 1);
if(-s "$first_char\/$seq_file_msp_name"){ $existing_msp_file="$first_char\/$seq_file_msp_name"; }
elsif(-s "$first_char\/$seq_file_msp_gz_name"){ $existing_msp_file="$first_char\/$seq_file_msp_gz_name"; }
if( (localtime(time- (stat($existing_msp_file))[9]))[3] > $age_in_days_of_out_file ) {
$overwrite_by_age='o';
print "\n# interm_lib_search : $seq_file_msp_name is older than $age_in_days_of_out_file days, ovrwrting\n";
}
if( !$over_write and (-s "$first_char\/$seq_file_msp_name" or -s "$first_char\/$seq_file_msp_gz_name")
return(\$final_dir);
}#~~~~~~~ End of sub ~~~~~~~~~~~
@read_files = @{&read_file_names_only(\$in_dir, \@target_file_names)};
for($i=0; $i < @read_files; $i ++){
@stat=stat($read_files[$i]);
$size_sum+=$stat[7];
if($stat[7] > 1000000){ $big_files{$stat[7]} = $read_files[$i]; }
if( ($read_files[$i]=~/^[\W]+$/)||($read_files[$i] =~ / +/)){
splice( @read_files, $i, 1 ); $i-- }
if( ($read_files[$i]=~/\.\.+/)||($read_files[$i] =~ /\#+/)||($read_files[$i]=~/\,+/)){
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 ) {
my $s = (stat($0))[9];
# If the modification time is only slightly in the future,
# sleep briefly to remove the problem.
my $a = $s - time;
if ( $a > 0 and $a < 5 ) { sleep 5 }
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 ) {
my $s = (stat($0))[9];
# If the modification time is only slightly in the future,
# sleep briefly to remove the problem.
my $a = $s - time;
if ( $a > 0 and $a < 5 ) { sleep 5 }
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# If the script that is loading Module::Install is from the future,
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 and (stat($0))[9] > time ) {
die << "END_DIE";
Your installer $0 has a modification time in the future.
This is known to create infinite loops in make.
view all matches for this distribution
view release on metacpan or search on metacpan
t/Blio/run.t view on Meta::CPAN
file_exists_ok( $blio->output_dir->file('movies.html') );
file_exists_ok( $blio->output_dir->file('books.html') );
file_exists_ok( $blio->output_dir->file('books/un_lun_dun.html') );
file_exists_ok( $blio->output_dir->file('books/artemis_fowl.html') );
my $un_lun_dun_mtime = (stat($blio->output_dir->file('books/un_lun_dun.html')->stringify))[9];
my $books_mtime = (stat($blio->output_dir->file('books.html')->stringify))[9];
is($un_lun_dun_mtime,$books_mtime,'books.html mtime = books/un_lun_dun.html');
done_testing();
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Blog/Blosxom.pm view on Meta::CPAN
my ($self, $fn) = @_;
my $dop;
return $dop if $dop = $self->_check_plugins("date_of_post", @_);
return stat($fn)->mtime;
}
=head2 filter (@entries)
This function returns only the desired entries from the array passed in. By
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# If the script that is loading Module::Install is from the future,
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 and (stat($0))[9] > time ) {
die << "END_DIE";
Your installer $0 has a modification time in the future.
This is known to create infinite loops in make.
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# If the script that is loading Module::Install is from the future,
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 and (stat($0))[9] > time ) {
die << "END_DIE";
Your installer $0 has a modification time in the future.
This is known to create infinite loops in make.
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 ) {
my $s = (stat($0))[9];
# If the modification time is only slightly in the future,
# sleep briefly to remove the problem.
my $a = $s - time;
if ( $a > 0 and $a < 5 ) { sleep 5 }
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 ) {
my $s = (stat($0))[9];
# If the modification time is only slightly in the future,
# sleep briefly to remove the problem.
my $a = $s - time;
if ( $a > 0 and $a < 5 ) { sleep 5 }
view all matches for this distribution
view release on metacpan or search on metacpan
include/boost/spirit/iterator/impl/file_iterator.ipp view on Meta::CPAN
return;
// call fstat to find get information about the file just
// opened (size and file type)
struct stat stat_buf;
if ((fstat(fd, &stat_buf) != 0) || !S_ISREG(stat_buf.st_mode))
{ // if fstat returns an error or if the file isn't a
// regular file we give up.
close(fd);
return;
}
view all matches for this distribution