当前位置: 技术问答>linux和unix
短程序找个错
来源: 互联网 发布时间:2016-12-22
本文导语: /*********************************************************************************/ /* singnal 在信号处理程序中调用不可重入函数 */ /*********************************************************************************/ #include #include #include #include #include static...
/*********************************************************************************/
/*
singnal
在信号处理程序中调用不可重入函数
*/
/*********************************************************************************/
#include
#include
#include
#include
#include
static void my_alarm(int signo)
{
struct passwd *rootptr;
printf("in signal handlern");
if ((rootptr = getpwnam("root")) == NULL)
{
printf("getpwnam errror!n");
}
alarm(1);
}
int main()
{
struct passwd *ptr;
signal(SIGALRM, my_alarm);
alarm(1);
for (;;)
{
if ((ptr = getpwnam("lilin")) == NULL)
{
printf("getpwnam error!n");
}
//lilin是我的用户名
if (strcmp(ptr->pw_name, "lilin") != 0)
{
printf("return error!n pw_name = %sn",
ptr->pw_name);
}
}
return 0;
}
错误:
[root@localhost work]# gcc 1.c -o 1
1.c: 在函数 ‘my_alarm’ 中:
1.c:19: 警告:赋值时将整数赋给指针,未作类型转换
1.c: 在函数 ‘main’ 中:
1.c:38: 警告:赋值时将整数赋给指针,未作类型转换
1.c:43: 错误:提领指向不完全类型的指针
1.c:46: 错误:提领指向不完全类型的指针
[root@localhost work]#
没错啊 我看了好久啦。。。。
|
你没有include getpwnam函数对应的头文件,导致编译器认为这个函数的返回值是整形,因为没有声明的函数默认返回值是整形。所以有告警。
#include
#include
#include
#include
|
补充一下要另外加两个头文件:
#include
#include
#include
#include
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。