fsendfile(): Break ABI by switching src and dst to match rest of API.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson committed 2015-07-06 02:04:28 +02:00
1 parent af39ae5fa9
commit c5366a33da
3 files changed
+21 -4

No files matched your search

+17
View File
@@ -63,6 +63,11 @@ Generic Functions
names: files and directories that must be freed after use. See names: files and directories that must be freed after use. See
the unit test at the bottom for an example. the unit test at the bottom for an example.
- `fcopyfile(src, dst)`
Like `copyfile()` but uses already open `FILE *` pointers. Copies
from current file positions to current file positions until EOF.
- `fexist(file)` - `fexist(file)`
Check for the existance of a file, returns True(1) or False(0). Check for the existance of a file, returns True(1) or False(0).
@@ -75,6 +80,18 @@ Generic Functions
Returns the `mode_t` bits of a file or directory. Returns the `mode_t` bits of a file or directory.
- `fsendfile(src, dst, len)`
Copy data between file streams, very similar to `fcopyfile()`, but
`dst` is allowed to be `NULL` to be able to read and discard `len`
bytes from `src`.
- `movefile(src, dst)`
Like `copyfile()`, but renames `src` to `dst`, or recreates symlink
with the `dst` name. On successful operation the source is removed
and the function returns POSIX OK (0).
- `rsync(src, dst, delete, *filter())` - `rsync(src, dst, delete, *filter())`
Very simple `rsync()` to copy files files and directories Very simple `rsync()` to copy files files and directories
+3 -3
View File
@@ -28,8 +28,8 @@
/** /**
* fsendfile - copy data between file streams * fsendfile - copy data between file streams
* @dst: Destination stream
* @src: Source stream * @src: Source stream
* @dst: Destination stream
* @len: Number of bytes to copy * @len: Number of bytes to copy
* *
* @dst may be %NULL, in which case @len bytes are read and discarded * @dst may be %NULL, in which case @len bytes are read and discarded
@@ -41,7 +41,7 @@
* The number of bytes copied. If an error is detected -1 is returned * The number of bytes copied. If an error is detected -1 is returned
* and @errno will be set accordingly. * and @errno will be set accordingly.
*/ */
size_t fsendfile(FILE *dst, FILE *src, size_t len) size_t fsendfile(FILE *src, FILE *dst, size_t len)
{ {
char *buf; char *buf;
size_t blk = BUFSIZ, num = 0, tot = 0; size_t blk = BUFSIZ, num = 0, tot = 0;
@@ -94,7 +94,7 @@ int main(void)
src = fopen(files[i], "r"); src = fopen(files[i], "r");
dst = fopen(files[i + 1], "w"); dst = fopen(files[i + 1], "w");
fprintf(stderr, "fsendfile(%s, %s, 512)\t", files[i], files[i + 1]); fprintf(stderr, "fsendfile(%s, %s, 512)\t", files[i], files[i + 1]);
if (-1 == fsendfile(dst, src, 512)) if (-1 == fsendfile(src, dst, 512))
perror("Failed"); perror("Failed");
if (!access(files[i + 1], F_OK)) if (!access(files[i + 1], F_OK))
+1 -1
View File
@@ -43,7 +43,7 @@ FILE *tempfile (void);
ssize_t copyfile (char *src, char *dst, int len, int sym); ssize_t copyfile (char *src, char *dst, int len, int sym);
int movefile (char *src, char *dst); int movefile (char *src, char *dst);
int fcopyfile (FILE *src, FILE *dst); int fcopyfile (FILE *src, FILE *dst);
size_t fsendfile (FILE *out, FILE *in, size_t sz); size_t fsendfile (FILE *src, FILE *dst, size_t len);
int dir (const char *dir, const char *type, int (*filter) (const char *file), char ***list, int strip); int dir (const char *dir, const char *type, int (*filter) (const char *file), char ***list, int strip);
int rsync (char *src, char *dst, int delete, int (*filter) (const char *file)); int rsync (char *src, char *dst, int delete, int (*filter) (const char *file));