creat()函数在调用成功后返回一个文件描述符,很多人都忽略了release这个文件描述符,造成memory leak.
常见的代码比如:
If (create("/tmp/flag.file", 0666) < 0)
{
printf("something wrong!\n");
}
或者干脆:
create("/tmp/flag.file", 0666);
create("/tmp/lock.file", 0666);
也许作者的初衷只是想create一个file,但这样会造成memory leak
正确的使用:
fd = create("/tmp/flag.file", 0666);
if (fd < 0)
{
xxxx;
}
....
close(fd);