"Recording" and "accessing the samples in real time" are basically the same thing.
Debian has Pulseaudio enabled by default, so the simplest way is to record (or "access the samples") from the associated
.monitor source of the Pulseaudio sink of your soundcard. This will work out of the box.
From the Pulseaudio sink, the samples go through ALSA and are then sent to the card, so there's a slight delay. But the samples will be the exact samples sent.
There are probably other ways to do that, but all of them are a lot more complicated, and some depend on the type of soundcard you have.
With respect to delay, you should also keep in mind that "accessing the samples" will involve buffering, so there will be a delay, no matter what you do.
If you have more specific requirements, please explain your use case in more detail.
Pulseaudio sources and sinks are not files, but "objects" which represent, well, audio sources (physical ones like mics on your soundcards as well as virtual ones) and audio sinks (phyiscal ones like the speakers connected to your soundcard as well as virtual ones).
Every Pulseaudio sink like
some-source-name has an associated source
some-source-name.monitor. By using the Pulseuadio library from C++, from Python or from whatever language you like, you can connect to this source, and get samples in real-time that reflect whatever is put into this sink.
Again, no files involved, neither WAV nor any other format. What happens internally is that your application communicates with the Pulseaudio demon, and gets a buffer with samples in regular intervals.
The library is not trivial to use, have a look at some example code.