5 Β #include <stdlib.h>67Β char *die_faces[] = { /* Π£ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ASCII Π³ΡΠ°ΡΠΈΠΊΠ°! */Β Β Β /* ... ΠΊΠ°ΠΊ ΡΠ°Π½Π΅Π΅ ... */31 };3233 /* myrandom --- Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· /dev/urandom Π² Π²ΠΈΠ΄Π΅ unsigned long */3435 unsigned long myrandom(void)36 {37Β static int fd = -1;38Β unsigned long data;3940Β if (fd == -1)41Β fd = open("/dev/urandom", O_RDONLY);4243Β if (fd == -1 || read(fd, &data, sizeof data) <= 0)44Β Β return random(); /* ΠΎΡΡΡΡΠΏΠΈΡΡ */4546Β return data;47 }4849 /* main --- Π²ΡΠ²Π΅ΡΡΠΈ N ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π³ΡΠ°Π½Π΅ΠΉ ΠΊΡΠ±ΠΈΠΊΠΎΠ² */5051 int main(int argc, char **argv)52 {53 Β int nfaces;54Β int i, j, k;55Β Β Β /* ...ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° args, Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ nfaces, ΠΊΠ°ΠΊ ΡΠ°Π½Π΅Π΅... */6869 Β for (i = 1; i <= nfaces; i++) {70Β Β j = myrandom() % 6; /* ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ 0 <= j <= 5 */71Β Β printf("+-------+\n");72Β Β for (k = 0; k < 3; k++)73Β Β Β printf("|%s|\n", die_faces[(j * 3) + k]);74Β Β printf("+-------+\n");75Β Β putchar('\n');76Β }7778Β return 0;79 }Π‘ΡΡΠΎΠΊΠΈ 35β47 ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ
/dev/urandomunsigned long12.7. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΠ°ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
Π’ΡΠΈ Π½Π°Π±ΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠ΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ Π³ΡΡΠΏΠΏΠΎΠ²ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ. ΠΠ½ΠΎΠ³ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ Π½ΡΠΆΠ½Ρ ΡΠ°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΄Π½ΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ
findfind . -name '*.Ρ' -print--exclude12.7.1. ΠΡΠΎΡΡΠΎΠ΅ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ:
fnmatch()ΠΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ
fnmatch()#include <fnmatch.h> /* POSIX */int fnmatch(const char *pattern, const char *string, int flags);ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ
stringpatternstringpatternFNM_NOMATCHΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ
flagsΠ’Π°Π±Π»ΠΈΡΠ° 12.1. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π°Π³ΠΎΠ² Π΄Π»Ρ
fnmatch()| Π€Π»Π°Π³ | Π’ΠΎΠ»ΡΠΊΠΎ GLIBC | ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ |
|---|---|---|
FNM_CASEFOLD | β | Π‘ΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ° |
FNM_FILE_NAME | β | Π‘ΠΈΠ½ΠΎΠ½ΠΈΠΌ GNU Π΄Π»Ρ FNM_PATHNAME |
FNM_LEADING_DIR | β | Π€Π»Π°Π³ Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ GLIBC; Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΅Π³ΠΎ Π² ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ . ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠΌ. Π² fnmatch(3) |
FNM_NOESCAPE | ΠΠ±ΡΠ°ΡΠ½ΡΠΉ ΡΠ»Π΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ, Π° Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° | |
FNM_PATHNAME | Π‘Π»Π΅Ρ Π² stringpattern*?[...] | |
FNM_PERIOD | ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΊΠ° Π² stringpatternstringFNM_PATHNAME |
fnmatch()fnmatch()readdir()