本文目录一览:
- 1、golang如何创建目录
- 2、东方神起的歌 的韩语歌词
- 3、redis 实现并发锁go
- 4、go分析的生成文件中的c f p文件各是什么意思
- 5、golang ioutil.WriteFile函数perm参数的用法
golang如何创建目录
golang中关于目录与文件名等操作都在os这个包中,具体的创建目录都是通过Mkdir和MkdirAll这2个函数来实现的,这两个函数用法一致
os.Mkdir(dirName string, perm FileMode)
dirName即要创建的目录(文件夹路径),可以是绝对路径,也可以是相对路径(相对于GOPATH)
perm表示创建的目录的权限,如0777(读r权限值为4,写权限w值为2,执行权限x值为1)
如:我要在/data/program/goapp这个目录下创建一个golang这个子目录,示例如下:
package main
import (
"os"
"fmt"
)
func main() {
err := os.Mkdir("/data/program/goapp/golang", 0666)
if err != nil {
fmt.Println(err)
}
}
注:Mkdir和MkdirAll的区别
Mkdir创建目录,它的父级目录必须是存在的,不然创建会失败
MkdirAll可以递归创建目录,即只要根目录存在即可,如下:
err := os.MkdirAll("/data/program/goapp/golang/test/hello", 0766)
if err != nil {
fmt.Println(err)
}
本例中:/data/program/goapp是已经存在的目录,而子目录golang/test/hello是不存在,此时要使用MkdirAll来创建
东方神起的歌 的韩语歌词
楼上的说人话,满嘴喷粪也不怕被妈妈揍~
我只找了些有的,楼主说的说的那些很难找呢
인사 - 영웅재중(백만장자의 첫사랑 OST)
insa - yeong oong jae joong
问候 - 东方神起 Hero
--------------------------------------------------
--------------------------------------------------
바람이 머문 그 시간 조차
parami meomoon keu sigan jocha
风停了 连时间也停了
나에겐 너무 모자란걸
naegen neomu mojarangeor
对我来说太不足够
한번의 미소 마지막 인사
hanbeone miso majimak insa
一次微笑 最后的问候
사랑합니다 그댈
sarangamida keudaer
我爱?
시간에 지쳐도 사랑에 아파도
sigane jicheodo sarange apado
时间也耗尽 爱也很痛
그시간 조차 추억이고
keu sigan jocha chueogigo
连那段时光也是追忆
마지막 인살 하네요
majimak insar haneyo
我要给你最后的问候
사랑합니다 사랑합니다
sarangamnida sarangamnida
我爱你 我爱你
fly away fly away love
飞翔吧 飞翔吧 爱
fly away fly away love
飞翔吧 飞翔吧 爱
fly away fly away love
飞翔吧 飞翔吧 爱
내인생 단 한번에 사랑아
ne insaeng tan hanbeone saranga
我人生唯一一次的爱啊
안녕
annyeong
再见
在中-步伐
he jir mu l(yo)p nar gen go kan bar go lem
눈 때보니 잊은줄 알았던 곳에
nun de bo ni i zen jur a la don go se
아직 도 너에 대한 미움이 남아있는지
a jik do no e de han mi u mi na ma i nen ji
이 젠 자유릅고 싶어
i jen cha yu lerp go si po
시간은 해결 해주리라 난 믿었지
si ga nen he g(yeo)r he zu li la nan mi do ji
그 것조차 어리석었을까
ker gok jo cha o li so go ser ga
이젠 흘러 가는대로 날 말길래
i zen her lo ka nen de lo nar mar gir le
너원 상관없잖니
no won sang guan op zan ni
*첨부터 너란 존재는
chom pu to no lan zon je nen
내겐 없었어
ne gen op so so
니가 내게 했듯이
ni ga ne ge he der si
기억해 내가 아파했던만큼
ki o ke ne ga a pa he don man kerm
언젠간 너도
on jen gan no do
나아닌 누구에게
na a nin nu gu e ge
이런 아픔 겪을테니
i lon a perm kyeo gerr ke ni
미안해
mi an he
이렇게 밖에 할 수 없잖니
i lo ke ba ge har su op zan ni
정말 이럴 수 밖에
chong mar i lor su pa ge
너처럼 다시 시작할 수 있는
no cho lom ta si si za kar su i nen
그 날이 오길
ker na li o kir
너를 사랑할 수 없고
no ler sa lang har su op go
너를 미워해야 하는 날 위해*
no ler mi wo he ya ha nen nar v he
日暮时分的天 拖拖拉拉的脚步
睁开眼睛看 这无法忘怀的地方
还残留有对你的怨恨
现在我想要自由
用时间可以解决的 我相信
就怕那样 也只是愚蠢的行为
现在那些错失的东西 我存放起来了
和你已经没有关系了 不是吗
一开始 你的存在是没有我的
是你给了我伤痛
我还有那麼多痛心的记忆
无论何时 你都不是我,任何人都是
这样的伤痛
来自饱受煎熬
对不起 除了这样做没有别的办法
真的只有这样做了
像你一样 只有重新开始
直到那天来临为止 没有办法再继续爱你
为了忘记对你憎恨的那天
一开始 你的存在是没有我的
是你给了我伤痛
我还有那麼多痛心的记忆
无论何时 你都不是我 任何人都是
这样的伤痛
来自饱受煎熬
对不起 除了这样做没有别的办法
真的只有这样做了
像你一样 只有重新开始
直到那天来临为止 没有办法再继续爱你
为了忘记对你憎恨的那天
参考资料:
풍선 (气球) ---동방신기 (东方神起)
br
br[All] 지나가버린 어린 시절엔 풍선을 타고 날아가는 예쁜 꿈도 꾸었지
br노란 풍선이 하늘을 날면 내 마음에도 아름다운 기억들이 생각나
br
br[최강] 내 어릴 적 꿈은 노란 풍선을 타고 하늘 높이 날으는 사람
br[믹키] 그 조그만 꿈을 잊어버리고 산 건 내가 너무 커버렸을 때
br
br[시아] 하지만 괴로울 땐 아이처럼 뛰어 놀고 싶어
br[영웅] 조그만 나의 꿈들을 풍선에 가득 싣고
br
br[All] 지나가버린 어린 시절엔 풍선을 타고 날아가는 예쁜 꿈도 꾸었지
br노란 풍선이 하늘을 날면 내 마음에도 아름다운 기억들이 생각나
br
br[영웅] 왜 하늘을 보면 나는 눈물이 날까 그것조차 알 수 없잖아
br[유노] 왜 어른이 되면 잊어버리게 될까 조그맣던 아이 시절을
br
br[믹키,최강] 때로는 나도 그냥 하늘 높이 날아가고 싶어
br[유노,시아] 잊었던 나의 꿈들과 추억을 가득 싣고
br
br[시아] 지나가버린 어린 시절엔 풍선을 타고 날아가는 예쁜 꿈도 꾸었지
br[All] 노란 풍선이 하늘을 날면 내 마음에도 아름다운 기억들이 생각나
br
br[All] 랄라라라라 랄라라라라 랄라라라라 라랄라라 랄랄랄라 라라라
br[최강] 세월이 흘러도 [유노,믹키] 잊어버려도
br[영웅] 노란 풍선에 담을 수 있을까
br
br[All] 지나가버린 어린 시절엔 풍선을 타고 날아가는 예쁜 꿈도 꾸었지
br노란 풍선이 하늘을 날면 내 마음에도 아름다운 기억들이 생각나
br回答者:paris_baguette - 秀才 三级 11-14 21:15
br
br풍선 (Balloons) ---동방신기 (东方神起)
br合:zyi na ga bao li.bao li xi jiao ai.gum sao nu ka gu.na na ga nen.ye buen bu no gu
brwo ji.no lo gum sou ni.ha ne-ri le-ri na niao.nai ma eri mai dou.a en da lem.ki yao
brde-ri li sam gan ma.
br珉:nai ao li jiao pu men.no la pun sou lm pa bu.ha ner o pi na le-ri le-ri sa la.
br米:ku jiao gum man bu mer.yi jiao bao lin gaor san gaor.nai ga nao mu kao bao liao si dai.
br秀:ha ji ma dai o yi dan.a yi qiao lo.duai yao nu go xi pou.
br花:qiao gv man na gai gong de-ri lu.puen sou nai ga de-ri xi kou.
br合:zyi na ga bao li.bao li xi jiao ai.gum sao nu ka gu.na na ga nen.ye buen bu no gu
brwo ji.no lo gum sou ni.ha ne-ri le-ri na niao.nai ma eri mai dou.a en da lem.ki yao
brde-ri li sam gan ma.
br花:wai ha ne-ri le-ri bu miao.na lu nun mu li na ga.gi lu jiu qia a su ao jia na.
br浩:wai ao lu nu tuai niao.yi jiao bo li gai tuai ga.qiu gi man ta a yi xi jiao li.
br米珉:dai ao nen na gao gu nia.na la ga go xi pou.
br秀浩:yi jiao dao na ye gong de-ri gua.qiu wo gu ta du xi go.
br合:zyi na ga bao li.bao li xi jiao ai.gum sao nu ka gu.na na ga nen.ye buen bu no gu
brwo ji.no lo gum sou ni.ha ne-ri le-ri na niao.nai ma eri mai dou.a en da lem.ki yao
brde-ri li sam gan ma.
br合:lalalalala~
br秀:sai wo li he lo dou.
br合:lalalalala~
br米:yi jiao bo liao dou.
br合:lalalalala~
br花:wo~oh~no la buen sou lai ta mu su yi su ga~
br合:zyi na ga bao li.bao li xi jiao ai.gum sao nu ka gu.na na ga nen.ye buen bu no gu
brwo ji.no lo gum sou ni.ha ne-ri le-ri na niao.nai ma eri mai dou.a en da lem.ki yao
brde-ri li sam gan ma.
HIYAYA
Beautiful ocean bright Just You and I In your eyes I can feel heavenly paradise.
don't be afraid of what you feel Inside
That's OK You don't have to cry yourself.
I'll give you word Only one love You know no one can make one happy as the way you do.
Baby that's the true love(my love) As always I'm here Baby This is our world
눈부신 태양아래, 그대와 단둘이서 (둘이서)
작은 배낭을 메고, 함께 길을 떠나요 (떠나요)
달리는 창 밖으론, 펼쳐진 푸른 바다 (내 곁에)
내 곁엔 어느새 잠든, 천사를 닮은 너
Dancing in summer paradise 사랑해 hi ya ya ya~
여름날 우리 추억을 평생 간직해
표현이 서툴고 어색할지 몰라도
"널 사랑해" forever come with me.
하얀 백사장 위로, 걸어오는 너 (오는 너)
너무나 눈부신 모습, 바로 볼 수가 없어 (그대와)
시원한 바람 맞으며, 단둘이 거닐 땐 (See my smile)
가쁘게 뛰는 내 마음 들릴까 걱정돼
till the end of time..
여름날 우리 추억을 평생 간직해
표현이 서툴고 어색할지 몰라도
"널 사랑해" forever come with me.
십년이 지나도, 이 모습 이대로
변함없이 그대 항상 내 곁에
있었음 정말 좋겠어
till the end of time..
Always be happy together 사랑해 hi ya ya ya~
끝없이 펼쳐진 하늘 우릴 축복해
Dancing in summer paradise 사랑해 hi ya ya ya~
여름날 우리 추억을 평생 간직해
표현이 서툴고 어색할지 몰라도
"널 사랑해" forever come with me
Hi Ya Ya 여름날
redis 实现并发锁go
锁的作用是:当多个线程竞争一个资源时,会出现资源被干掉或者资源重置为另一个值,这时锁的作用就出现了,锁住当前的资源,其他线程就不会修改此数据了。
使用redis锁的思想是:将资源作为一个独立标识,然后放在字符串里面,并且使用过期时间来声明锁:
也可以手动释放,才去循环设置超时时间
SetNX 这个命令就很好地作为资源声明,创建一个锁:
import (
"context"
"go-redis/client"
"time"
"github.com/go-redis/redis/v8"
"github.com/google/uuid"
)
var ctx = context.TODO()
func Lock(lockname string, locktime int64) string {
u, _ := uuid.NewUUID()
ustr := u.String()
end := time.Now().Unix() + locktime
for {
if time.Now().Unix() end {
client.RedisClient().SetNX(ctx, "lock:"+lockname, ustr, time.Hour)
return ustr
}
}
}
而释放锁,一般是两步合并的操作,因为它会减少IO操作。
两步分为:
获取资源
如果有此资源,释放锁(删除资源uuid)
package redislock
import (
"context"
"go-redis/client"
"time"
"github.com/go-redis/redis/v8"
"github.com/google/uuid"
)
var ctx = context.TODO()
// 释放锁
func Release(lockname string, indetifier string) bool {
pipline := client.RedisClient().TxPipeline()
lockname = "lock:" + lockname
for {
pipline.Get(ctx, lockname).Val()
cmders, _ := pipline.Exec(ctx)
perm, _ := cmders[0].(*redis.StringCmd).Result()
if perm == indetifier {
pipline.Del(ctx, lockname) // 删除锁
pipline.Exec(ctx)
return true
}
}
}
go分析的生成文件中的c f p文件各是什么意思
一、func Open(name string) (file *File, err error)
再简单不过了,给一个路径给它,返回文件描述符,如果出现错误就会返回一个 *PathError。
这是一个只读打开模式,实际上就是 os.OpenFile() 的快捷操作,它的原型如下:
复制代码代码如下:
func Open(name string) (file *File, err error) {
return OpenFile(name, O_RDONLY, 0)
}
二、func OpenFile(name string, flag int, perm FileMode) (file *File, err error)
这个复杂点,需要提供文件路径、打开模式、文件权限。
打开标记:
O_RDONLY:只读模式(read-only)
O_WRONLY:只写模式(write-only)
O_RDWR:读写模式(read-write)
O_APPEND:追加模式(append)
O_CREATE:文件不存在就创建(create a new file if none exists.)
O_EXCL:与 O_CREATE 一起用,构成一个新建文件的功能,它要求文件必须不存在(used with O_CREATE, file must not exist)
O_SYNC:同步方式打开,即不使用缓存,直接写入硬盘
O_TRUNC:打开并清空文件
文件权限(unix权限位):只有在创建文件时才需要,不需要创建文件可以设置为 0。os库虽然提供常量,但是我一般直接写数字,如0664。
golang ioutil.WriteFile函数perm参数的用法
golang ioutil.WriteFile函数perm参数的用法
ioutil.WriteFile(..., perm os.FileMode)
刚开始接触golang的文件API的时候,总是纳闷为什么在创建文件的时候需要显示的指定文件的perm属性,难道不能从系统的umask里面获取吗?
实际上ioutil.WriteFile在创建新文件时,并不是直接使用参数perm的值,而是要和umask的值做合并的。把函数参数的值合并到当前umask的值,才是最终创建出来文件的perm属性。
例如
umask为空,所以ioutil.WriteFile的perm属性就是最后的文件属性
umask为0777,所以ioutil.WriteFile的perm属性全被disable掉了
umask为0000,所以ioutil.WriteFile的perm属性就是最后的文件属性
umask为0640,而ioutil.WriteFile的perm属性也是640,正好全部被关闭了,最后生成的文件没有任何属性。
即ioutil.WriteFile在写文件时,如果目标文件已经存在,那么目标文件的perm属性不会被改动,即此时ioutil.WriteFile的参数perm会被忽略。
注意一点就明白了,touch命令使用的是0666的属性,它并没有给X(executable)属性置值,所以不管在umask中对executable位是否置1,touch命令就不能生成一个具有executable的文件。