Linuxでプログラム書いてますが、
ソケットの状態を取得する関数はありますか?

getsockoptは状態ではなく設定を取得する関数なので要領を得ません
とりあえず、接続中か接続済みか未接続かを
ソケットディスクリプタから得るだけでもいいです