I don't think there is a way in the linux system libraries to get that since the underlying libraries use the abbreviated forms only and the long forms are likely not available anywhere.
However, the ICU library does have the requisite methods and many more. It is installed by default on most modern linux distros (you will need libicu-dev or equivalent to compile):
http://userguide.icu-project.org/datetime/timezone[
^]
Sample code:
#include
#include <iostream>
using namespace U_ICU_NAMESPACE;
TimeZone* tz = TimeZone::createDefault();
UnicodeString us;
std::string s;
tz->getDisplayName(us);
us.toUTF8String(s);
std::cout << "Current timezone: " << s << '\n';
delete tz;