linux中oc命令詳解 linux o命令

OC中extern、static、const和宏定義

基礎(chǔ)知識:(參考Henry725的博客)

創(chuàng)新互聯(lián)公司堅(jiān)信:善待客戶,將會(huì)成為終身客戶。我們能堅(jiān)持多年,是因?yàn)槲覀円恢笨芍档眯刨?。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。十多年網(wǎng)站建設(shè)經(jīng)驗(yàn)創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營銷服務(wù)商,為您提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、H5建站、網(wǎng)站制作、品牌網(wǎng)站建設(shè)、成都微信小程序服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。

extern用于變量的聲明,告訴編譯器:已經(jīng)存在一個(gè)全局變量,但是不在當(dāng)前的編譯單元內(nèi),需要連接的時(shí)候在其他編譯單元中尋找。

修改變量作用域?yàn)楫?dāng)前編譯單元,變量生命周期不變;

避免重復(fù)定義全局變量

2.2. 修飾局部變量 -

修改變量的生命周期為整個(gè)工程周期,變量作用域不變

const修飾右邊的變量,用來限制變量為只讀屬性。

在程序的預(yù)編譯階段進(jìn)行替換處理。

區(qū)別:

1.define宏是在預(yù)處理階段展開。

const常量是編譯運(yùn)行階段使用。

2.define不做檢查,不會(huì)報(bào)編譯錯(cuò)誤,只是替換。const會(huì)編譯檢查,會(huì)報(bào)編譯錯(cuò)誤

3.define在展開的時(shí)候才分配內(nèi)存,展開幾次分配幾次內(nèi)存。const在定義的時(shí)候會(huì)分配一次內(nèi)存到靜態(tài)區(qū),使用時(shí)不重復(fù)分配

4.define可以定義一些簡單的運(yùn)算函數(shù)

聲明一個(gè)只讀的靜態(tài)變量

在多個(gè)文件中經(jīng)常使用的同一個(gè)全局變量。

使用場景:

1、.h文件中聲明

2、.m文件中賦值

這里直接訪問即可,都不用放到.pch文件中,因?yàn)槟J(rèn)權(quán)限是internal

public : 最大權(quán)限,可以在當(dāng)前framework和其他framwork中訪問;

internal : 默認(rèn)權(quán)限,可以在當(dāng)前framework中隨意訪問;

private : 私有權(quán)限,只能在當(dāng)前文件中訪問;

一般常量的話,都用extern const 來代替define。

因?yàn)橐坏┒x#define的方式,整個(gè)工程將被重新編譯,這樣帶來的時(shí)間浪費(fèi)可想而知

當(dāng)然了很多情況還是代替不了的,一般定義常量的時(shí)候是應(yīng)該使用這種方式來定義,不過也只是常量宏不被推薦,但是類函數(shù)宏用的還是很方便的,

const、#define的優(yōu)缺點(diǎn)

編譯器可以對const進(jìn)行類型安全檢查。而對#define只進(jìn)行字符替換,沒有類型安全檢查,并且在字符替換可能會(huì)產(chǎn)生意料不到的錯(cuò)誤。

這種情況還可能出現(xiàn)以下錯(cuò)誤

Sending 'const NSString *__strong' to parameter of type 'NSString *' discards qualifiers

原因是需要 NSString* 的地方使用了 const NSString*

.h中 extern const NSString* 替換為 extern NSString* const

.m中 const NSString* 替換為 NSString* const

解釋:前者相當(dāng)于指針本身不可修改,后者表示指針指向的內(nèi)容不可修改,兩者的作用都是使字符串只可讀不可寫。

oc指令是啥意思航天

OC指令是“Orbital Command”的縮寫,它是一種用于控制太空船只的指令。OC指令可以用來控制航天器的航向、速度、加速度和姿態(tài),以及航天器的起降、懸停和軌道調(diào)整等。OC指令還可以用來控制航天器的傳感器、系統(tǒng)和設(shè)備,以及航天器的通信、導(dǎo)航和控制系統(tǒng)。OC指令可以用來控制航天器的運(yùn)行狀態(tài),以及航天器的環(huán)境參數(shù),如溫度、濕度、壓力和放射性能等。OC指令還可以用來控制航天器的燃料消耗、推力和軌道變化等??傊?,OC指令是用來控制航天器的一種重要指令,它可以幫助航天器實(shí)現(xiàn)其設(shè)定的任務(wù)。

在linux系統(tǒng)中OC編程如何實(shí)現(xiàn)字符串連接

 由于Xcode對中文支持良好,所以在開發(fā)過程中經(jīng)常直接使用中文字符串。

不過蘋果推薦多語言化,需要為中文字符串添加個(gè)NSLocalizedString宏。

#!/usr/bin/python

# -*- coding: utf-8 -*-

'''''

Localization The Objective-C Code

@"..." -- NSLocalizedString(@"...", nil)

Jason Lee 2012-03-01

'''

import os, sys

import re

import codecs

targetPattern = pile('@"[^"]+"')

global newFile, newFilePointer

def isChineseCharacter(ch):

return0x4e00 = ord(ch) = 0x9fa5

def hasChineseCharacter(str):

for char in str:

if isChineseCharacter(char):

returnTrue

returnFalse

def buildNewString(oldStr):

newStrPrefix = 'NSLocalizedString('

newStrSuffix = ', nil)'

newStr = newStrPrefix + oldStr + newStrSuffix

return newStr

def processLine(line):

global newFile, newFilePointer

matchResult = targetPattern.findall(line)

for result in matchResult:

if hasChineseCharacter(result):

#print result, buildNewString(result)

p = pile(result)

line = p.sub(buildNewString(result), line)

newFilePointer.write(line)

def processFile(filename):

#Xcode file is saved with utf-8

global newFile, newFilePointer

newFile = 'Replaced.' + filename

newFilePointer = codecs.open(newFile, 'wb', 'utf-8')

fp = codecs.open(filename, 'rb', 'utf-8')

for line in fp:

processLine(line)

fp.close()

newFilePointer.close()

oldFile = 'Old.' + filename

os.system('mv ' + filename + ' ' + oldFile)

os.system('mv ' + newFile + ' ' + filename)

#os.system('rm -f ' + oldFile)

if __name__ == "__main__":

if len(sys.argv) 1:

output = os.popen('ls ' + sys.argv[1]).read()

filelist = re.split('\n', output)

filelist = filelist[:-1]

#print filelist

print'Localizing...'

for file in filelist:

if os.path.exists(file):

try:

#print 'Processing File :', file

processFile(file)

except Exception as e:

print e

print'Localization Done.'

之后需要做的事情參考:

代碼沒用經(jīng)過嚴(yán)格驗(yàn)證,請慎用。起碼,沒有檢查該字符串是否已經(jīng)加了NSLocalizedString宏。

新手的OpenShift oc命令

有一天,我發(fā)現(xiàn)這篇關(guān)于 bash 帖子。如果您是專業(yè)用戶,您可能已經(jīng)知道所有這些技巧,但如果您是新手或不是這樣的專業(yè)用戶,那么該帖子很可能是您的一天。

我認(rèn)為為 oc 命令創(chuàng)建類似的帖子會(huì)很有用。 oc 命令是dope,每個(gè)人都應(yīng)該知道。它設(shè)計(jì)精良,一致,靈活,正如您將看到的,有許多值得嘗試的隱藏功能。

如果您是OpenShift專業(yè)人士,您可能已經(jīng)知道我將在這里揭示的大部分內(nèi)容; 否則,如果您剛開始使用OpenShift,或者您不是經(jīng)驗(yàn)豐富的用戶,這將為您節(jié)省一些寶貴的時(shí)間。

當(dāng)我不知道發(fā)生了什么或者我收到了不友好的錯(cuò)誤消息時(shí),我總是使用該標(biāo)志 --loglevel 。它將日志級別信息寫入stderr。根據(jù)日志級別,您將獲得curl API Rest調(diào)用,、API Rest正文答案,甚至更詳細(xì)的信息。

如果要修補(bǔ)OCP對象,loglevel 9非常方便,因?yàn)樗@示了您需要應(yīng)用的補(bǔ)?。ˋPI請求體)。

假設(shè)您要更改服務(wù)對象的標(biāo)簽,在本例中標(biāo)簽為“app:hello-jorge”。

注意: 在絕望的時(shí)刻,你總是可以添加任意數(shù)量的9,結(jié)果將只有一個(gè)9,但你可能會(huì)感到寬慰。

是的,你沒有看錯(cuò)。您可以替換正在運(yùn)行oc命令的用戶,或者在OCP術(shù)語中,您可以 "模擬"(impersonate ) 用戶。顯然,如果你有足夠的權(quán)限進(jìn)行模擬, 那么你只需要使用flag --as 。

例如:

此外,可以進(jìn)行組模擬,而不是用戶模擬:

在許多情況下,它非常方便快捷,例如,檢查用戶是否可以執(zhí)行特定操作或檢查用戶在運(yùn)行oc時(shí)將收到的輸出。在搞不清角色和權(quán)限時(shí),它也很有用。

oc whoami 命令眾所周知,特別是加上flag -t 用于獲取當(dāng)前用戶/會(huì)話的持有者令牌。但是當(dāng)你有一個(gè)令牌并且你不知道誰是所有者時(shí)會(huì)發(fā)生什么?

您可以做的一件事是使用令牌登錄OpenShift,然后執(zhí)行 oc whoami ...等待一秒鐘。 oc whoami 會(huì)給你這個(gè)信息!只需在命令行中傳遞令牌作為第3個(gè)參數(shù),不需要任何標(biāo)志。

試試看:

你可以運(yùn)行一個(gè)pod并獲得一個(gè)shell。有時(shí)獲取正在運(yùn)行的pod配置的副本并使用shell對其進(jìn)行故障排除很有用。這是默認(rèn)行為。

介紹下 oc debug 選項(xiàng),您可以以root用戶, 或任何其他用戶ID身份運(yùn)行容器,強(qiáng)制它在特定節(jié)點(diǎn)中運(yùn)行各種命令。

您必須針對有效的 dc 運(yùn)行命令,例如:

OpenShift / k8s對象有時(shí)很復(fù)雜,有很多字段。很多時(shí)候,我最終在OCP文檔或其他來源中尋找對象定義示例。在涉及OCP / k8s對象定義時(shí),您可以考慮用 oc explain 作為可信來源。

oc explain 為您提供資源及其字段的文檔。在聲明新的OCP對象時(shí),或者當(dāng)您無法訪問官方OCP文檔時(shí),它非常有用。

例如,您可以獲取pod文檔和pod spec affinity字段描述:

關(guān)于oc命令的一個(gè)非??岬氖虑槭撬哂懈袷交敵龅膬?nèi)置功能。我們都知道 -o json 或者 -o yaml ,但flag -o 為您提供了許多其他可能性。

在我發(fā)現(xiàn)的所有這些輸出選項(xiàng)中, go-template 和 jsonpath 是最強(qiáng)大的輸出選項(xiàng):

例如,假設(shè)您想要獲取特定路由(router)(docker registry router)所公開的服務(wù)(service):

或者您想了解路由器DC的部署策略:

如您所見,oc命令非常棒。我鼓勵(lì)你繼續(xù)玩它,因?yàn)檫@是OpenShift最酷的事情之一。

Jorge Tudela Gonzalez de Riancho在紅帽西班牙工作,擔(dān)任云顧問,專門研究OpenShift和容器相關(guān)技術(shù)。

網(wǎng)頁標(biāo)題:linux中oc命令詳解 linux o命令
網(wǎng)站路徑:http://muchs.cn/article34/dohcdpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司企業(yè)建站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站策劃網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司