You don't say what your matrix C is, or what results DGESVD gives, but nevertheless if
sigma(i) < eps*sigma(1), i > 1,
then you cannot expect any correct figures in the sigma(i), i > 1. Indeed, numerically your matrix is singular. If MATLAB gives the 'correct' result then that is fortuitous. Results can differ due to different optimizations between compilers and compiler switches.
Do I understand that your matrix C is symmetric? If so, why not do a spectral factorization of C rather than an SVD? But, better still, if your matrix C is the form X * X^T, and you have X, it would be better to take the SVD of X,
X = U * S * V^T so that C = U * S^2 * U^T.
Since the singular values of X are the square roots of those of C, you would still have some accuracy in the small singular values.