Revision b9f0f7ec4c22cea732e2a39ad25ab46e20ddab3d authored by Loong on 30 March 2023, 06:39:48 UTC, committed by Kristoffer on 30 March 2023, 07:32:27 UTC
(cherry picked from commit e5c2c51c083a33b4357178cb0009bc1e831c004e)
1 parent 5d17f1c
Raw File
stringreplace.c
// This file is a part of Julia. License is MIT: https://julialang.org/license

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main( int argc, char ** argv ) {
    if( argc < 5 ) {
        printf("Usage:\n");
        printf("  %s <hex offset> <string to write> <maxlen> <file>\n", argv[0] );
        return -1;
    }

    unsigned long offset = strtoul(argv[1], NULL, 16);
    char * replacement = argv[2];
    unsigned long maxlen = strtoul(argv[3], NULL, 10);

    FILE * f = fopen( argv[4], "r+" );
    if( !f ) {
        printf( "ERROR: Could not open %s for writing!\n", argv[4] );
        return -1;
    }

    if( strlen(replacement) > maxlen ) {
        printf( "ERROR: Replacement string length (%lu) is greater than maxlen! (%lu)\n", strlen(replacement), maxlen );
        return -1;
    }

    fseek( f, offset, SEEK_SET );
    fwrite( replacement, strlen(replacement)+1, 1, f );

    fclose( f );
    return 0;
}
back to top