C语言,主函数和自定义函数为什么不同?
今天学习读写文件,发现一个问题,同样的语句放在主函数里面就好用复制粘贴到自定义的函数里面就会报错?!
为什么?
我在和程序同一目录下建立了一个名字是“UserID”文件(注意没有扩展名),里面写了一个数字(比如999),
运行程序,可以打印出数字。
这个是好使的,显示结果:999
程序代码:#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<fcntl.h>
#include<sys/stat.h>
int main()
{
int fd;
fd=open("UserID",O_RDWR,S_IRUSR|S_IWUSR);
char *buffer;
if(read(fd,buffer,3)==-1)
{
perror("Error in getuid");
exit(-1);
}
printf(buffer);
close(fd);
return 0;
}当我把主函数里面的过程复制到一个自定义的函数里面的时候,就报错??求指点
报错内容:Error in getuid: Invalid argument
程序代码:#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<fcntl.h>
#include<sys/stat.h>
void getuid()
{
int fd;
fd=open("UserID",O_RDWR,S_IRUSR|S_IWUSR);
char *buffer;
if(read(fd,buffer,3)==-1)
{
perror("Error in getuid");
exit(-1);
}
printf(buffer);
close(fd);
}
int main()
{
getuid();
return 0;
}









我一般都是用fopen