Quantcast
Channel: Active questions tagged kernel - Stack Overflow
Viewing all articles
Browse latest Browse all 6334

How can I swap contents of two text files with kernel system calls

$
0
0

Here is my poor attempt:

//open:#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>//raad, write, exit:#include <unistd.h>#include <stdlib.h>//renameat2:#include<stdio.h>int main(){        int fd1, fd2;        //do I need those ifs?        if((fd1 = open("foo", O_RDWR)) == -1){            write(2, "File failed to open in read/write mode\n", 33);            exit(-1);        }        if((fd2 = open("bar", O_RDWR)) == -1 ){            write(2, "File failed to open in read/write mode\n", 34);            exit(-1);        }        renameat2(AT_FDCWD,fd1,AT_FDCWD,fd2, RENAME_EXCHANGE);        close(fd1);        close(fd2);        exit(0);}

I'm trying to use the system call function "renameat2", but it gives me errors:

main.c:24:3: warning: implicit declaration of function 'renameat2'; did you mean 'rename'?

main.c:24:13: error: 'AT_FDCWD' undeclared (first use in this function)

main.c:24:40: error: 'RENAME_EXCHANGE' undeclared (first use in this function)


Viewing all articles
Browse latest Browse all 6334

Trending Articles