void glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source)
glGetShaderSource returns the concatenation of the source code strings from the shader object specified by shader. The source code strings for a shader object are the result of a previous call to glShaderSource. The string returned by the function is null terminated.
glGetShaderSource returns in source as much of the source code string as it can, up to a maximum of bufSize characters. The number of characters actually returned, excluding the null termination character, is specified by length. If the length of the returned string is not required, a value of NULL can be passed in the length argument. The size of the buffer required to store the returned source code string can be obtained by calling glGetShader with the value GL_SHADER_SOURCE_LENGTH.
glGetShaderSource is available only if the GL version is 2.0 or greater.
GL_INVALID_VALUE is generated if shader is not a value generated by OpenGL.
GL_INVALID_OPERATION is generated if shader is not a shader object.
GL_INVALID_VALUE is generated if bufSize is less than 0.
GL_INVALID_OPERATION is generated if glGetShaderSource is executed between the execution of glBegin and the corresponding execution of glEnd.
glGetShader with argument GL_SHADER_SOURCE_LENGTH