我在linux上用GDB调试程序.我正在使用getenv并setenv调用读取和设置环境变量.例如,我setenv("TZ", "UTC", 1);打算为时区设置TZ环境变量.
要检查是否设置了env变量,我正在使用GDB命令show environment.这将打印所有环境变量及其值.但它没有表明TZ被设定.
甚至命令show environment TZ说Environment variable "TZ" not defined.
他们是另一种检查调试程序环境的方法吗?
p *(char *) getenv("TZ")重新确认正确的价值UTC.
我正在寻找一个GNU readline替代品.它有很多功能,但只有几个对我有用,如下所述 -
我正在处理交互式命令提示应用程序(显示提示并接受下一个要运行的用户命令).我想为提示实现一些编辑和历史记录功能.因此,当用户按下UP键时,它应显示最后一次运行命令.此外,如果用户需要编辑任何拼写错误或命令开关等,用户应该能够使用箭头键进行导航.
在Windows上已经存在类似的东西,如果您使用fgets或scanf在cmd提示符下获取输入,它已经保留了历史记录并且还允许您进行编辑.
Linux上有一个很好的选择吗?
我正在使用以下 docker-compose.yml 启动 postgres 容器
version: '3'
services:
db:
image: postgres:latest
container_name: postgres
environment:
POSTGRES_USER: usr
POSTGRES_PASSWORD: pswd
POSTGRES_DB: db
PGDATA: /var/lib/postgresql/data/pgdata
ports:
- 5432:5432
volumes:
- nfs_cur_dir:/var/lib/postgresql/data
volumes:
nfs_cur_dir:
driver: local
driver_opts:
type: nfs
o: "addr=10.15.187.88,rw"
device: ":/u/uname/home/database"
Run Code Online (Sandbox Code Playgroud)
启动容器时出现以下错误
$sudo ./docker-compose up db
Starting postgres ... done
Attaching to postgres
postgres | mkdir: cannot create directory ‘/var/lib/postgresql/data’: Permission denied
postgres exited with code 1
Run Code Online (Sandbox Code Playgroud)
database目录权限为 777
drwxrwxrwx 3 uname grpname 4096 May 5 22:57 database
失败后,我还看到pgdata创建的目录是这样的 …