üzerinde C kullanarak doğru permissons ile dizin oluşturma Nasıl dizinler (bir mkdir clone.) Oluşturan basit bir C programı yazmaya çalışıyorum.Posix
#include <stdlib.h>
#include <sys/stat.h> // mkdir
#include <stdio.h> // perror
mode_t getumask()
{
mode_t mask = umask(0);
umask (mask);
return mask;
}
int main(int argc, const char *argv[])
{
mode_t mask = getumask();
printf("%i",mask);
if (mkdir("trial",mask) == -1) {
perror(argv[0]);
exit(EXIT_FAILURE);
}
return 0;
}
Bu kod d---------
ile dizin oluşturur ama mkdir yapmak gibi drwxr-xr-x
ile oluşturmak istiyorum: Bu defa ne var? Burada neyi yanlış yapıyorum?
Düzenleme
: Umask göre doğru izinleri ayarlamaint main(int argc, const char *argv[])
{
if (mkdir("trial",0777) == -1) {
perror(argv[0]);
exit(EXIT_FAILURE);
}
return 0;
}
otomatik olarak işlendiğinden: Bu benim için çalışma çözümdür. Bu yüzden sadece mkdir'i tam izinlerle çağırmam gerekiyordu ve bu da mevcut umask'a göre kesiliyor.
Tanılama baskısı ne üretir? "% I" den sonra bir satır eklediyseniz daha iyi olabilir ve "% o" veya "% i" yerine "% .4o" ifadesini kullandıysanız daha kolay okunabilir. Ayrıca, [# umask() '] 'ı (http://pubs.opengroup.org/onlinepubs/9699919799/functions/umask.html) ve [' mkdir() '] bildiren #include' eksik gibi görünüyorsunuz (http://pubs.opengroup.org/onlinepubs/9699919799/functions/mkdir.html). –
% 22 ile% 4o üretir. – yasar