That number is a file descriptor, and it's the single abstraction that holds together files, sockets, pipes, terminals, timers, signals, and /dev/null. They are all just integers pointing into a kernel table
FD is basically an integer, which is an entry number in the kernel table. Each process has its own copy of kernel table.