Ваша оболочка, вероятно, имеет umask 022
, что означает, что любые новые созданные файлы будут очищены с указанными битами (т.е. запись в группу и другая запись).
Вам нужно установить значение umask в 0 перед созданием файла:
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
int main()
{
umask(0);
int fild = creat("tasty", 0722);
close(fild);
return 0;
}