Hi, All, 

I am trying to read a configuration file using Viper, the config file is a 
very simple json file with one line
{
"device" : "eth1"
}

I use the following line to read it 

device := viper.GetString("device")


then passing this var further into a C library with swig generated api as 
arg2

itc := device //Need to update if there is more devices
libpi.PI_init_global_config(1, &itc)

func PI_init_global_config(arg1 int, arg2 *string) {



I can retrieve the correct value,  and can verify that var device does have 
eth1 as the value when printf it.  I even did the compare of device == 
"eth1", and the result is true. 

However, when passing this device var to the PI_init_gloable_config API, I 
got code crashed with the following error

*panic: runtime error: cgo argument has Go pointer to Go pointer*


If instead of reading this file from configuration json, I hardcode it in 
the code as 

device := "eth1"

then there is no issue at all. If I read this variable using Flag from 
command line, like

flag.StringVar(&device, "Device", "eth1", "NIC to Listen")


there was no problem either. 



Can anybody please enlighten me what's the difference? Why this error is 
triggered? I googled quite a bit, but it does not seem to help. I have go 
1.8.3 installed.

Thanks,
Chun

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to