I'm trying to get user permissions for a file from the user as a string and convert it into type os.FileMode
.
So, after I get the permission "0644"
and convert it, it becomes 644
. I am using this as a parameter to ioutil.WriteFile
.
This is what I'm doing.
data["perm"] = "0644"
tempval, err2 = strconv.ParseUint(data["Perm"], 10, 32)
// tempval is 644
I'm not getting the right permissions.
I get --w----r--
instead of -rw-r--r--
I've been trying to find a workaround.
So, how exactly do I achieve this?
tempval, err2 = strconv.ParseUint(data["Perm"], 10, 32)
You're explicitly asking for base 10 here. If you want base 8 (which is the traditional base for unix file modes), then you need to use 8
in the second parameter. Or better, use base 0
, and it'll automatically choose base 8 due to the leading 0. See the docs on strconv.ParseInt
for how "base 0" works.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With