glusterfs

Форк
0
/
fileio.rc 
61 строка · 1.0 Кб
1
#!/bin/bash
2

3
function fd_available() {
4
         for i in {1..65536}; do
5
             if [ ! -e /proc/$$/fd/$i ]; then
6
                 echo $i;
7
                 return 0;
8
             fi
9
         done
10

11
         return 1;
12
}
13

14
function fd_open() {
15
         local fd=$1;
16
         local mode=$2
17
         local path=$3;
18

19
         case $mode in
20
             r)
21
                 eval "exec $fd<$path";;
22
             w)
23
                 eval "exec $fd>$path";;
24
             rw)
25
                 eval "exec $fd<>$path";;
26
             *)
27
                 false;;
28
         esac
29
}
30

31

32
function fd_cat() {
33
         local fd=$1;
34

35
         eval "cat <&$fd";
36
}
37

38

39
function fd_write() {
40
         local fd=$1;
41
         shift;
42
         local msg="$@";
43

44
         eval "echo $@ >&$fd";
45
}
46

47

48
function fd_close() {
49
         local fd=$1;
50

51
         eval "exec $fd>&-";
52
}
53

54

55
function fd_based_example() {
56
    TEST fd=`fd_available`;
57
    TEST fd_open $fd "rw" $M0/filename;
58
    TEST fd_cat $fd; # print existing stuff
59
    TEST fd_write $fd "new stuff"; # append
60
    TEST fd_close $fd;
61
}
62

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.