-3

既に開いているファイルにテキストを追加しようとしています。ファイルの最後に pid 番号を追加したいと思います。例: Lorem ipsum dolor sit amet orci aliquam. 14872. ファイルの最後の文字と pid の最初の桁の間のスペースをプログラムに出力させることに失敗することを除いて、私のコードは正常に動作します。lseek()ファイルの末尾からのオフセットとして追加して使用しようとしましたが1、前に述べたように、惨めに失敗しました。どうやら期待される結果がすべて得られているため、何が問題なのかわかりません。

Buffer size: 5.
Buffer content: 14872.
Current position: 41.

そして、この出力:

Lorem ipsum dolor sit amet orci aliquam.14872

私には意味がありません。だからここに私のコードがあります:

void writeintheend(const int fd, const int pid, const int base)
{
    char *buffer;
    int buffer_size = getcharsfromint(pid, base);
    printf("Buffer size: %d.\n", buffer_size);
    buffer = (char *) malloc (sizeof(char) * buffer_size);
    sprintf(buffer, "%d", pid);
    printf("Buffer content: %s.\n", buffer);

    //It should add a space and then write the pid
    lseek(fd, 1, SEEK_END);
    printf("Current position: %d.\n", lseek(fd, 0, SEEK_CUR));
    write(fd, buffer, buffer_size);
    free(buffer);
}
4

1 に答える 1