С программой на C
Вы можете, например, использовать поток, который спит для 0.Через 2 секунды
#include
#include
#include
#include
#include
pthread_t tid;
void* doSomeThing() {
While(1){
//execute my command
sleep(0.2)
}
}
int main(void)
{
int i = 0;
int err;
err = pthread_create(&(tid), NULL, &doSomeThing, NULL);
if (err != 0)
printf("\ncan't create thread :[%s]", strerror(err));
else
printf("\n Thread created successfully\n");
return 0;
}
используйте его, чтобы узнать, как создать поток: создать поток (это ссылка, которую я использовал для вставки этого кода)
Обязательный ответ zsh:
echo "The highest-numbered file is" filename_*.dat([-1])
Это glob с квалификатором glob [NUM]
для сохранения только NUM-го совпадения (отрицательное значение отсчитывается от последнего совпадения). Если у вас есть числа разной ширины, добавьте квалификатор n
, чтобы
% ls
filename_1.dat filename_12.dat filename_17.dat filename_2.dat filename_8.dat
% echo filename_*.dat([-1])
filename_8.dat
% echo filename_*.dat(n[-1])
filename_17.dat
Globbing происходит только в контексте, который ищет список слов, поэтому если вы хотите присвоить имя файла переменной, вам нужно сделать его массивом, который будет содержать один элемент:
latest=(filename_*.dat[-1])
echo "The highest-numbered file is $latest"
В любой оболочке вы можете установить позиционные аргументы на полный список совпадений и сохранить последнее.
set_latest () {
eval "latest=\${$#}"
}
set_latest filename_*.dat
echo "The highest-numbered file is $latest"
Имейте в виду, что это возвращает последние в алфавитном порядке, а не в числовом, например, filename_10.dat
находится после filename_09.dat
, но перед filename_9.dat
.
Если имена файлов полностью числовые, их нужно сначала передать через sort, так как ls отсортирует файлы в алфавитном порядке, а 10 будет стоять перед 9
$ touch {1..10)
$ ls | tail -1
> 9
$ ls | sort -n | tail -1
> 10