linux 系统时间打印成字符串
时间: 2023-12-19 22:04:37 浏览: 68
可以使用以下命令将 Linux 系统时间打印成字符串:
```shell
date +"%Y-%m-%d %H:%M:%S"
```
其中,`date` 命令用于获取系统时间,`+"%Y-%m-%d %H:%M:%S"` 用于指定输出格式,其中 `%Y` 表示年份,`%m` 表示月份,`%d` 表示日,`%H` 表示小时,`%M` 表示分钟,`%S` 表示秒。输出格式可以根据需要进行修改。
相关问题
linux 使用sprintf系统时间打印成字符串
以下是一个例子:
```
#include <stdio.h>
#include <time.h>
int main() {
char time_string[20];
time_t raw_time;
struct tm * time_info;
time(&raw_time);
time_info = localtime(&raw_time);
sprintf(time_string, "%d-%02d-%02d %02d:%02d:%02d",
time_info->tm_year + 1900, time_info->tm_mon + 1, time_info->tm_mday,
time_info->tm_hour, time_info->tm_min, time_info->tm_sec);
printf("Current time: %s\n", time_string);
return 0;
}
```
输出结果类似于:
```
Current time: 2021-03-05 23:59:59
```
Linux 编程:由用户键盘输入次数n和字符串str,要求在新线程中显示n次str字符串
好的,可以使用C语言和Linux系统调用来完成这个任务。以下是一个简单的示例代码:
```c
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void *print_string(void *arguments) {
int n = *(int *)arguments; // 获取参数中的次数n
char *str = (char *)arguments + sizeof(int); // 获取参数中的字符串str
for (int i = 0; i < n; i++) {
printf("%s\n", str);
}
return NULL;
}
int main() {
int n;
char str[100];
printf("请输入次数n和字符串str:");
scanf("%d %s", &n, str);
pthread_t tid;
void *arguments = malloc(sizeof(int) + strlen(str) + 1); // 为参数分配内存
memcpy(arguments, &n, sizeof(int));
memcpy(arguments + sizeof(int), str, strlen(str) + 1);
pthread_create(&tid, NULL, print_string, arguments); // 创建新线程
pthread_join(tid, NULL); // 等待新线程结束
free(arguments); // 释放参数内存
return 0;
}
```
首先在主线程中读取用户输入的次数n和字符串str,然后为新线程的参数分配内存,并将n和str复制到参数中。接着创建新线程,并在新线程中执行print_string函数,该函数会根据n和str重复打印字符串。最后等待新线程结束,并释放参数内存。
需要注意的是,在使用malloc分配内存时,必须保证参数的生命周期比新线程的执行时间长,否则会出现内存泄漏或未定义行为。在本例中,我们在新线程结束后才释放参数内存,因此是安全的。
阅读全文