小编Jac*_*255的帖子

如何在gcc的编译时识别x86与x86_64?

我想仅在x86和x86_64 linux上编译我的部分代码,而不是s390 linux或其他.如何在C中使用宏定义来实现呢?我知道linux的是要确定Linux操作系统,以及386,486586,以确定CPU架构.是否有一个简单的宏定义来确定x86 linux和x86_64 linux?谢谢

c linux macros

4
推荐指数
2
解决办法
4284
查看次数

在调用函数然后检查errno之前需要清理errno吗?

  1. errno在调用函数之前我们需要重置为零吗?见下面的代码.现在场景是a_dest_path现有目录.但是当我执行代码时,它总是尝试mkdir但返回错误表示无法创建目录,因为它存在.在GDB中,我errn在调用之前检查o opendir()并且errno是2.并且errno在调用期间似乎没有设置为零opendir().所以我需要errno在呼叫前重置为零opendir()吗?

  2. errno可以在system()通话中更改,然后在我的else if分支中我检查结果system()但不是opendir().那么之后opendir(),我需要分配errno一个变量然后在if..elseif..else分支中检查这个变量吗?

DIR *dp = opendir(a_dest_path.c_str());
if (errno == ENOENT) {
    string mkdir_comman = "mkdir " + a_dest_path;
    system(mkdir_command.c_str());
} else if (errno == ENOTDIR) {
    printf("Destination %s exists but is not directory\n", a_dest_path.c_str());
    return k_error_not_directory;
} else if (errno == 0) {
    closedir(dp);
}
Run Code Online (Sandbox Code Playgroud)

c++ linux

2
推荐指数
1
解决办法
5832
查看次数

字符指针和字符串的大小

我按以下代码测试char数组,指针和字符串的长度/大小。
为什么sizeof(pArray)是8?我猜它应该是4的指针。
为什么sizeof(str)是8而不是6或7?
为什么sizeof("abcdef")是7而不是6?

char array1[10] = {'a', 'b'};
char array[10] = "abcdef";
const char * pArray = "abcdef";
string str = "abcdef";
printf("array1:%d, array:%d, pArray:%d, str:%d,strsize:%d, strlen:%d,  raw:%d\n", sizeof(array1), sizeof(array), sizeof(pArray), sizeof(str), str.size(), str.length(), sizeof("abcdef"));
Run Code Online (Sandbox Code Playgroud)

程序输出:

array1:10, array:10, pArray:8, str:8,strsize:6, strlen:6,  raw:7
Run Code Online (Sandbox Code Playgroud)

c++ pointers

1
推荐指数
1
解决办法
2031
查看次数

在节点关闭后,Pod不会在另一个节点上运行

我创建了一个在Node3 172.24.18.125中运行的mysql pod.但是在我停止Node3中的所有kubernetes服务之后,这个pod在一段时间后消失,而不是在Node1或Node2中运行.为什么kubernetes master不会重新安排另一个节点中的pod?以下是pod和复制控制器的yaml文件.

[root@localhost pods]# kubectl get nodes
NAME LABELS STATUS
127.0.0.1 kubernetes.io/hostname=127.0.0.1 Ready
172.24.18.123 database=mysql,kubernetes.io/hostname=172.24.18.123 Ready
172.24.18.124 kubernetes.io/hostname=172.24.18.124 Ready
172.24.18.125 kubernetes.io/hostname=172.24.18.125 Ready

YAML file to create mysql pod:
apiVersion: v1
kind: Pod
metadata:
name: mysql
labels:
name: mysql
spec:
containers:
- resources:
limits :
cpu: 1
image: mysql
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: welcome
ports:
- containerPort: 3306
  name: mysql

mysql-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    name: mysql
  name: mysql
spec:
  publicIPs:
    - 172.24.18.120
  ports: …
Run Code Online (Sandbox Code Playgroud)

docker kubernetes

0
推荐指数
1
解决办法
420
查看次数

标签 统计

c++ ×2

linux ×2

c ×1

docker ×1

kubernetes ×1

macros ×1

pointers ×1