1

Here's the lines of code in C:

void func_g(undefined4 pmt1)
{
    int amt, elmt1;
    uint elmt3[3];

    amt = __isoc99_sscanf(pmt1, "%d %d", elmt1, &elmt3);
    return;
}

What __isoc99_sscanf trying to do?

adlofMerlin
  • 79
  • 10
  • 4
    Function names beginning with two underscores are reserved for the implementation. That's an internal function of the compiler. – Barmar Nov 03 '21 at 18:02
  • 1
    You should also see [this thread](https://stackoverflow.com/questions/1449181/what-does-double-underscore-const-mean-in-c) – Chuck Walbourn Nov 03 '21 at 18:02
  • 6
    Based on the name, I guess it's the code for the C99-compatible version of `sscanf()`. – Barmar Nov 03 '21 at 18:02
  • @Barmar FYI: https://stackoverflow.com/questions/56444576/asm-isoc99-scanf-after-function-declaration Could possibly be considered a dupe - I'll let others decide. – Andrew Henle Nov 03 '21 at 18:07
  • @AndrewHenle I'd be tempted to close this as dupe of the one you linked to be honest. – Marco Bonelli Nov 03 '21 at 19:28
  • 1
    `int ... elmt1; ... __isoc99_sscanf(pmt1, "%d %d", elmt1, &elmt3);` looks wrong. Passing a `int` where `int *` expected? `&elmt3` looks dodgy too as it is not an `int*`. – chux - Reinstate Monica Nov 03 '21 at 21:23

1 Answers1

1

isoc99_sscanf (and other related functions) were introduced in 2007 for compliance with the C99 standard. As part of the introduction of the C99 support, "sscanf" is redirected to "__isoc99_sscanf".it is compiler specific syntax gcc uses it.

This function return the number of input items successfully matched and assigned, which can be fewer than provided for, or even zero in the event of an early matching failure.

vegan_meat
  • 878
  • 4
  • 10