Shouldn't the design document be independent of language of implementation ? But I am not able to figure out, with no classes involved in my implementation, how and between what will I show relations ?
Often, an architectural design will be independent of language, to the extent possible. If any technology decisions have been made in advance, they may be included in the system architecture. Detail designs to tend to consider the development language so that the notations used are relevant to the people building and/or maintaining the system. If you're creating a detail design and you know the application will be written in C, use the terminology and constructs from C.
Is there any standard way to document C projects ?
There are many ways to document C projects. Some constructs from UML can be used, keeping in mind that some of the object-oriented terms don't apply and therefore shouldn't be used. Class diagrams, activity diagrams, component diagrams, and sequence diagrams can be used, to varying extents, often using a subset of the complete UML language. Alternatively, data flow diagrams, data structure diagrams, or JSP diagrams can be used. Textual representations (including creating pseudocode before implementing algorithms) are also valid.
Something to keep in mind is the purpose of the design documentation. All design documents should indicate how the system is going to fulfill the requirements. The rest depends on the audience. If you're going to be designing and implementing the system, then the documentation can serve as a guide for future developers and testers. IF you are just designing the system, you need to be far more explicit in inputs and outputs so that, given only the models and descriptions of the system, someone can build something that meets your needs.