diff options
author | pixel <pixel> | 2002-11-29 20:39:44 +0000 |
---|---|---|
committer | pixel <pixel> | 2002-11-29 20:39:44 +0000 |
commit | ed0ed93bc9a64412c04a73938b04079cad95c4af (patch) | |
tree | 985cbfc9e800d0ee6d28ebb542d6ee79c9a4cc96 /lib/fileutils.cc | |
parent | a69ef2131749e05bb43106d48139638de0144f69 (diff) |
Yeah... reworking on it!
Diffstat (limited to 'lib/fileutils.cc')
-rw-r--r-- | lib/fileutils.cc | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/lib/fileutils.cc b/lib/fileutils.cc new file mode 100644 index 0000000..b04a414 --- /dev/null +++ b/lib/fileutils.cc @@ -0,0 +1,74 @@ +/* + * PSX-Tools Bundle Pack + * Copyright (C) 2002 Nicolas "Pixel" Noble + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <string.h> +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <unistd.h> +#include "generic.h" + +unsigned long filesize(int f_iso) +{ + long curpos, length; + + curpos = lseek(f_iso, 0, SEEK_CUR); + length = lseek(f_iso, 0, SEEK_END); + lseek(f_iso, curpos, SEEK_SET); + return length; +} + +void copy(int s, int d, long size) { + long i; + unsigned char c; + long r; + + for (i = 0; (i < size) || (size < 0); i++) { + r = read(s, &c, 1); + if (r == 0) { + break; + } + write(d, &c, 1); + } +} + +unsigned long filesize(FILE * f_iso) +{ + long curpos, length; + + curpos = ftell(f_iso); + fseek(f_iso, 0, SEEK_END); + length = ftell(f_iso); + fseek(f_iso, curpos, SEEK_SET); + return length; +} + +void copy(FILE * s, FILE * d, long size) { + long i; + unsigned char c; + long r; + + for (i = 0; (i < size) || (size < 0); i++) { + r = fread(&c, 1, 1, s); + if (r == 0) { + break; + } + fwrite(&c, 1, 1, d); + } +} |