当前位置: 技术问答>linux和unix
什么函数能把字符型的时间转换成tm或time_t的时间??
来源: 互联网 发布时间:2015-01-01
本文导语: 找到一个函数strptime 但是在g++编译说undeclared, 加了#define _XOPEN_SOURCE man里面说/*glibc2 need this */ usleep()又undeclared 谁能告知怎么解决或 _XOPEN_SOURCE是干什么用的 源程序如下: //#define _XOPEN_SOURCE #include #include #include...
找到一个函数strptime
但是在g++编译说undeclared,
加了#define _XOPEN_SOURCE
man里面说/*glibc2 need this */
usleep()又undeclared
谁能告知怎么解决或
_XOPEN_SOURCE是干什么用的
源程序如下:
//#define _XOPEN_SOURCE
#include
#include
#include
int main() {
struct tm tm;
char buf[255];
strptime("20011116183101", "%Y%m%d%H%M%S", &tm);
strftime(buf, sizeof(buf), "%d %b %Y %H:%M", &tm);
puts(buf);
return 0;
usleep(1000);
}
ps:这是我从庞大的程序里面提炼出来的。所以不可能改用gcc
但是在g++编译说undeclared,
加了#define _XOPEN_SOURCE
man里面说/*glibc2 need this */
usleep()又undeclared
谁能告知怎么解决或
_XOPEN_SOURCE是干什么用的
源程序如下:
//#define _XOPEN_SOURCE
#include
#include
#include
int main() {
struct tm tm;
char buf[255];
strptime("20011116183101", "%Y%m%d%H%M%S", &tm);
strftime(buf, sizeof(buf), "%d %b %Y %H:%M", &tm);
puts(buf);
return 0;
usleep(1000);
}
ps:这是我从庞大的程序里面提炼出来的。所以不可能改用gcc
|
改成:
#include
#include
#define __USE_XOPEN
#include
int main() {
struct tm tm;
char buf[255];
strptime("20011116183101", "%Y%m%d%H%M%S", &tm);
strftime(buf, sizeof(buf), "%d %b %Y %H:%M", &tm);
puts(buf);
return 0;
usleep(1000);
}
即可。
#include
#include
#define __USE_XOPEN
#include
int main() {
struct tm tm;
char buf[255];
strptime("20011116183101", "%Y%m%d%H%M%S", &tm);
strftime(buf, sizeof(buf), "%d %b %Y %H:%M", &tm);
puts(buf);
return 0;
usleep(1000);
}
即可。
|
嘿嘿,你的程序我能编译啊,可能是glibc的版本问题,你的linux是什么发行版本?用的glibc是什么版本?
我在redhat 8.0下编译通过,可以这样查看glibc的版本:
ll /lib/libc*
/lib/libc-2.2.93.so
我在redhat 8.0下编译通过,可以这样查看glibc的版本:
ll /lib/libc*
/lib/libc-2.2.93.so
|
加上这两行头文件就可以使用了
#define _XOPEN_SOURCE
#include
#define _XOPEN_SOURCE
#include