Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <fcntl.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- int main(int argc, char **argv)
- {
- int fd = open(argv[1], O_RDWR);
- int counter, est = 0, tmp;
- long long length = 0;
- while(read(fd, &counter, sizeof(int))){
- length++;
- }
- int i;
- for (i = 0; i < length; i++){
- read(fd, &counter, sizeof(int))
- if(counter < 0) {
- est++;
- lseek(fd, 0, SEEK_END);
- write(fd, &counter, sizeof(int));
- lseek(fd, i + 1, SEEK_SET);
- }
- }
- lseek(fd, 0, SEEK_SET);
- for (i = 0; i < length; i++){
- read(fd, &counter, sizeof(int))
- if(counter >= 0) {
- lseek(fd, 0, SEEK_END);
- write(fd, &counter, sizeof(int));
- lseek(fd, i + 1, SEEK_SET);
- }
- }
- for (i = 0; i < length; i++){
- lseek(fd, length + est - i - 1, SEEK_SET);
- read(fd, &counter, sizeof(int))
- lseek(fd, i, SEEK_SET);
- write(fd, &counter, sizeof(int));
- }
- close(fd);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement