English 中文(简体)
lseek function problem in a copy file program!
原标题:

Got to use lseek function in this program below... Program is simply copying file (that already exist). I wanned to copy the existing file with the chars from the end of file for example: Sorce_File.txt contains:"1 2 3" after copy Target_File.txt contains:"3 2 1"

I m pretty sure it s simple problem but couldn t find out since 2 days how to do it

   #include <fcntl.h>

   #include <stdio.h>

   #define MAX 512

   int main(int argc, char* argv[]){
 char buf[MAX];
 int desc_sorc, desc_targ;
 int lbajt;

 if (argc<3){
  argv[0];
    exit(1);
 }

 desc_sorc = open(argv[1], O_RDONLY);
  if (desc_sorc == -1){

 }

 desc_targ = creat(argv[2], 0640);
 if (desc_targ == -1){
  exit(1);
  }

 while((lbajt = read(desc_sorc, buf, MAX)) > 0){

  if (lbajt ==  -1) {
    perror("position error");
    exit(1);}

  if (write(desc_targ, buf, lbajt) == -1)

{
   exit(1);


    }
  } 
 if (lbajt == -1){
    exit(1);
 } 

 if (close(desc_sorc) == -1 || close(desc_targ) == -1){
    exit(1);
 }

 exit(0);
 }
问题回答
 int desc_sorc, desc_targ;

You don t actually initialize these to anything. Anywhere.

EDIT: Now that you ve fixed that, have you actually tested it again?

You are missing the equivalent of strrev(...) in there to reverse the string you write out as well starting from the end of the source file and reading backwards or writing from the end of the target file back to the beginning.

The actual implementation is left as an exercise to the reader.





相关问题
Fastest method for running a binary search on a file in C?

For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Tips for debugging a made-for-linux application on windows?

I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

Good, free, easy-to-use C graphics libraries? [closed]

I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...

Encoding, decoding an integer to a char array

Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...

热门标签