The broken pipe error is defined in the syscall package. You can use the equality operator to compare the error to the one in syscall. Check http://golang.org/pkg/syscall/#constants for a complete list of syscall errors. Search "EPIPE" on the page and you will find all the defined errors grouped together.
if err == syscall.EPIPE {
/* ignore */
}
If you wish to get the actual errno number (although it is pretty useless) you can use a type assertion:
if e, ok := err.(syscall.Errno); ok {
errno = uintptr(e)
}