and main:
int main()
{
printf("---procesy z /proc a jejich nazvy---\n");
char newPathToOpenDir[20]; // /proc/maxDelkaPID4 => 20 pro jistotu
char newPathToFile[20]; // /proc/maxDelkaPID4/comm => pro jistotu
unsigned char data[30];
DIR *directory; // neco jako FILE *file_pointer, ale pro slozky
struct dirent *entry; // ukazatel na strukturu dirent, ktera obsahuje ruzne informace current slozce/souboru => entry
if((directory = opendir("/proc")) == 0)
{
printf("chyba u otevirani slozky /proc");
return 1;
}
size_t i = 1;
while((entry = readdir(directory)) != NULL)
{
// offset v /proc se udela sam interne
if (is_all_digits(entry) == 0)
{
printf("%d: %s\n", i, entry->d_name);
snprintf(newPathToOpenDir, 12, "/proc/%s", entry->d_name);
snprintf(newPathToFile, 16, "/proc/%s/comm", entry->d_name);
FILE *filePointer = fopen(newPathToFile, "rb");
fseek(filePointer, 0, SEEK_SET);
fseek(filePointer, 0, SEEK_END);
size_t delkaSouboru = ftell(filePointer);
fseek(filePointer, 0, SEEK_SET);
if (fread(data, sizeof(unsigned char), delkaSouboru, filePointer) != delkaSouboru)
{
printf("nejak se to nerovna, error");
fclose(filePointer);
return 1;
}
data[delkaSouboru] = '\0';
printf("\ntady to je: %s\n", data);
fclose(filePointer);
i++;
}
else
{
//printf("\nNE\n");
}
}
if(closedir(directory) != 0)
{
return 1;
}
return 0;
}