I'm needing to capture the raw data (every few miliseconds) that the microphone provides. For preference on Python, but it can be in C/C++ too. I'm using Linux/macOS.
How do I capture the audio wave (microphone input) and what kind of data it will be? Pure bytes? An array with some data?
I want to make real time maginitude analysis and (if magnitude reachs a determined value) real time fft of the microphone signal, but I don't know the concepts about what data and how much data the microphone provides me.
I see a lot of code that sets to capture 44.1kHz of the audio, but does it capture all this data? The portion of data taken depends of how it was programmed?
"I'm needing to capture the raw data (every few milliseconds) that the microphone provides"
No, you don't. That wouldn't work. Even if you captured that data every millisecond, at exactly a multiple of 1000 microseconds (no jitter), you would have an audio quality that's utterly horrible. A sample frequency of 1000 Hz (once per millisecond) limits the Nyquist frequency to 500 Hz. That's horribly low.
"I want to make real time maginitude analysis". Well, you're ignoring the magnitude of components above 500 Hz, which is about 98% of the audible frequencies.
"real time fft" - same problem, that too would miss 98%. 
You can't handle raw audio like that. You must rely on the sound card to do the heavy lifting, to get the timing rights. It can sample sounds every 21 microseconds, with microsecond accuracy. You can talk to the audio card using ALSA or PulseAudio, or a few other options (that's sound on Linux for you). But recommendations there would be off-topic.
How to capture the microphone buffer raw data?