top button
Flag Notify
    Connect to us
      Site Registration

Site Registration

Which header file gets() & puts() functions?

+2 votes

My compiler is GCC

posted Nov 17, 2014 by anonymous

Share this question
Facebook Share Button Twitter Share Button LinkedIn Share Button

2 Answers

+1 vote
Best answer

gets() and puts() is declare inside stdio.h
Here is a screen shot for both. You can also see that which function belongs to which header file by simply
executing man func_name on your terminal.



answer Nov 18, 2014 by Arshad Khan
+1 vote

I checked manual page, it is showing that stdio.h header file has prototype of gets function.

answer Nov 18, 2014 by Ganesh
Similar Questions
+1 vote

I have an oversight in my code where I'm declaring & defining a function
with C-linkage, though it's not possible.

Example snippet:

#ifdef __cplusplus
extern "C"

// ... some functions which are compatible with C linkage

// Intended to be a helper function not exposed from library
std::string GetEngineVersion()
 // ...

#ifdef __cplusplus

Obviously the GetEngineVersion function cannot have C linkage because it returns a C++ class.

My question is: does GCC have a warning for this scenario? Specifically, can it warn when something is declared extern "C" that's incompatible with C linkage?

I compile with the following warning flags and I didn't get a warning:

-Wall -Wunused-parameter -Wextra -Weffc++ -Wctor-dtor-privacy
-Wnon-virtual-dtor -Wreorder -Wold-style-cast -Woverloaded-virtual

Incidentally, when I compile the same code in VS2013 I get this warning:

warning C4190: 'GetEngineVersion' has C-linkage specified, but returns UDT 'std::basic_string' which is incompatible with C
+3 votes

I read some where that .i extension "C source code should not be pre processed". When it is required and what is the advantage of it.