How do I find threads that belong to the same process in Linux-Collection of common programming errors

Actually, you don’t need task_struct at all.

See my gist for a example code on printing the threads of a process with a given pid.

Reference

Type man proc at the command line (online version), and find the entry for /proc/[pid]/task.

Quoting from the man page:

This is a directory that contains one subdirectory for each thread in the process. The name of each subdirectory is the numerical thread ID ([tid]) of the thread.

Note that one of the subdirectories in /proc/[pid]/task is whatever [pid] is (the pid of the program you’re inspecting).

You can then gather other information using the pseudo-files in the directory /proc/[pid]/task/[tid] for each thread pid [tid].

Without C Code

ps -mo THREAD -p should work.